【发布时间】:2015-10-19 06:50:51
【问题描述】:
我的应用程序不断地向不同的主机发送 UDP 数据包。当主机处于活动状态时,UDP 数据包到达主机,sendto 函数返回发送给它的字节数。但是当主机宕机(电缆拔出或重置)时,sendto 函数不会发送 UDP 数据包,但仍会返回缓冲区中的字节数。不是发送 UDP 数据包,而是发送 ARP 数据包来查找主机。为什么sendto 函数不返回 SOCKET_ERROR? WSAGetLastError 函数也返回 0。如何在向无法访问的主机发送 UDP 数据包时发现错误?
附:我的操作系统是 Winodws 7 x64,我的应用程序是原生 C++ 和 64 位。
【问题讨论】:
-
你尝试过哪些失败案例?只是拔掉电缆?
-
当发现错误时,返回任何东西都为时已晚。
标签: c++ sockets winapi network-programming