Sockets 如果closesocket因WSAENETDOWN失败,我该怎么办?

Sockets 如果closesocket因WSAENETDOWN失败,我该怎么办?,sockets,winsock,closesocket,Sockets,Winsock,Closesocket,,每当closesocket功能因WSAENETDOWN而失败时,“网络子系统已失败”。但这到底意味着什么?什么时候发生?如果确实发生了,套接字描述符是否仍处于关闭状态?我该怎么处理 关于我的第一个问题,页面上说,WSAENETDOWN意味着 网络瘫痪了 套接字操作遇到死网络。这可能表示网络系统(即Windows套接字DLL运行的协议堆栈)、网络接口或本地网络本身出现严重故障 但这也不能真正帮助我 请注意,POSIXenetown仅为connect、send、sendmsg、write指定,而不

,每当
closesocket
功能因
WSAENETDOWN
而失败时,“网络子系统已失败”。但这到底意味着什么?什么时候发生?如果确实发生了,套接字描述符是否仍处于关闭状态?我该怎么处理

关于我的第一个问题,页面上说,
WSAENETDOWN
意味着

网络瘫痪了

套接字操作遇到死网络。这可能表示网络系统(即Windows套接字DLL运行的协议堆栈)、网络接口或本地网络本身出现严重故障

但这也不能真正帮助我


请注意,POSIX
enetown
仅为
connect
send
sendmsg
write
指定,而不是为
close
指定。Winsock对应的版本更为普遍。

我不认为在现代版本的Windows上仍然可以获得该错误代码,除非您安装了第三方套接字实现。在什么情况下你会看到它?@HarryJohnston我应该补充一点,我还没有看到这个错误情况,所以这个问题可能有点假设性(但话说回来,我还没有太多地使用Winsock,所以我只是想确定一下)。这是否也适用于
WSACleanup
?如果你能提供一些参考资料,也许还有一个答案,那就太好了!再想想,如果TCP/IP驱动程序崩溃或停止,Winsock可能会返回该错误代码。(如果您想进行实验,可以在程序的套接字打开时尝试
sc stop tcpip
。)无论如何,您的程序不太可能解决问题。您可能应该假设套接字不再有效;如果它泄漏,那不是你的错,在正常情况下不会发生这种情况,你也无法明智地处理它。我不认为你在现代版本的Windows上仍然可以得到错误代码,除非你安装了第三方套接字实现。在什么情况下你会看到它?@HarryJohnston我应该补充一点,我还没有看到这个错误情况,所以这个问题可能有点假设性(但话说回来,我还没有太多地使用Winsock,所以我只是想确定一下)。这是否也适用于
WSACleanup
?如果你能提供一些参考资料,也许还有一个答案,那就太好了!再想想,如果TCP/IP驱动程序崩溃或停止,Winsock可能会返回该错误代码。(如果您想进行实验,可以在程序的套接字打开时尝试
sc stop tcpip
。)无论如何,您的程序不太可能解决问题。您可能应该假设套接字不再有效;如果它泄漏了,那不是你的错,在正常情况下不会发生,你也无法理智地处理它。