多次close, create udp socket后,为啥该socket接收不到之前server发过来的数据?
问题场景如下:
使用异步udp socket,向IP1发送数据包,接收到IP1返回的UDP数据回复,然后关闭socket,然后再重启socket,再发送数据包,接收返回的UDP数据包。如此多次往复。大约10多次后,socket可以向IP1发送数据包,可是IP1返回的UDP数据包用iris抓包,可以看到数据包已经到了网卡,但是recv函数却没有被调用。
此时,如果我把IP1换成IP2的另外的UDP服务器,数据可以正常发送,也可以正常接收。
大约10多分钟后,我重启客户端程序,再次向IP1发送UDP数据包,此时客户端程序可以接收到IP1服务器返回的UDP数据包。
是不是windows有什么保护机制?谢谢!