[win32] Winsock 中应使用 DisconnectEx 关闭连接

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

而要主动给对方(peer)发送 FIN,要使用 DisconnectEx() 函数。而 MSDN 告知,DisconnectEx() 函数居然需要 XP, Server 2003 的支持,真是汗,98, 2000 的系统是是如何个活法?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值