windows 平台 linger 失效的问题

来源:互联网 发布:分类信息网站系统cms 编辑:程序博客网 时间:2024/05/17 09:00

按照msdn文档,windows的linger与posix标准是一致的,默认是关闭(off)的调用close系统会在后台将没有发送出去的数据发送完。

但是实际调测时,发现一旦调用closesocket连接就会被reset了,这和linger开启(on)并且等待时间设置为0的效果一样了。

分析有可能是安装了一些杀毒软件,勾住了网络API,而这些钩子没有严格按照标准实现。

临时解决办法是close前等待对方关闭,确定所有数据对方都收到,再关闭,这相当于实现了系统的默认功能。