Windows UDP socket recvfrom返回10054错误的解决办法
2020-12-13 14:10
标签:style blog http io color os ar 使用 sp 现象: 在Windows 7系统上,A使用UDP socket,调用sendto函数向一个目标地址B发送数据,但是目标地址B没有接收数据,如果A此时立即调用recvfrom试图接收目标地址B发回的数据的话,recvfrom会立即返回-1,WSAGetLastError()返回10045。 原因: 上述现象是Windows socket的一个bug,当UDP Socket在某次发送后收到一个不可到达的ICMP包时,这个错误将在下一个接收中返回,所以上面的套接字在下一次的接收中返回了SOCKET_ERROR,错误是10054。 解决办法: 使用WSAIoctl设置UDP socket的工作模式,让其忽略这个错误。具体做法如下: SIO_UDP_CONNREST选项:Controls whether UDP PORT_UNREACHABLE messages are reported. Set to TRUE to enable reporting. Set to FALSE to disable reporting. 备注: 参考文献: [1]. http://blog.csdn.net/wpullo/article/details/5905616 Windows UDP socket recvfrom返回10054错误的解决办法 标签:style blog http io color os ar 使用 sp 原文地址:http://www.cnblogs.com/cnpirate/p/4059137.html#include
[2]. http://msdn.microsoft.com/zh-cn/ms741621
[3]. http://blog.sina.com.cn/s/blog_536e955201009xqp.html
[4]. http://blog.csdn.net/threewall/article/details/5089817
下一篇:进程vs线程
文章标题:Windows UDP socket recvfrom返回10054错误的解决办法
文章链接:http://soscw.com/essay/33765.html