3

我编写了一个客户端应用程序,它使用 mdnsreponder 进行一些服务发现。我有一个要求,我的客户端 IP 会非常频繁地更改。每当 IP 发生变化时,我都需要再次进行发现。所以我编写了简单的测试应用程序,它将每 1 分钟更改一次 IP 并进行发现。

一切正常,但经过几次 IP 更改(大约 7-10 次更改)后,它给出了以下套接字错误。

(下面是mdnsresponder代码中sendto socket函数的错误码)

mdnsplatformsend udp got error 22 .

之后,我的请求将不会将其放在具有新 IP 的接口上。

我再次必须重新启动我的应用程序,然后只有它才能工作......

有人可以帮助解决这个问题,为什么在几次试验后它就停止了?

4

1 回答 1

3

请重新检查您传递的 sendto 函数的参数。当套接字绑定丢失时,可能会发生此错误。这意味着绑定套接字的地址已更改或无效。该错误也可能是由于您传递的地址结构的大小错误造成的。

于 2015-11-09T04:27:20.277 回答