在 maillist 上看到一则讯息,使用 closesocket() 只是让 OS 回收你的 socket,其实并没有给对方(peer)发送 FIN。因此对方(peer)在下次 recv() 的时候,会收到 "reset
by peer" 的错误。
而要主动给对方(peer)发送 FIN,要使用 DisconnectEx() 函数。而 MSDN 告知,DisconnectEx() 函数居然需要 XP, Server 2003 的支持,真是汗,98, 2000 的系统是是如何个活法?
而要主动给对方(peer)发送 FIN,要使用 DisconnectEx() 函数。而 MSDN 告知,DisconnectEx() 函数居然需要 XP, Server 2003 的支持,真是汗,98, 2000 的系统是是如何个活法?
本文探讨了closesocket()函数与DisconnectEx()函数在关闭套接字时的不同行为。前者仅通知操作系统回收资源而不主动发送FIN包给对端,后者则能够主动发送FIN包并确保对端接收,但其可用性受限于操作系统版本。

2848

被折叠的 条评论
为什么被折叠?



