按照msdn文档,windows的linger与posix标准是一致的,默认是关闭(off)的调用close系统会在后台将没有发送出去的数据发送完。
但是实际调测时,发现一旦调用closesocket连接就会被reset了,这和linger开启(on)并且等待时间设置为0的效果一样了。
分析有可能是安装了一些杀毒软件,勾住了网络API,而这些钩子没有严格按照标准实现。
临时解决办法是close前等待对方关闭,确定所有数据对方都收到,再关闭,这相当于实现了系统的默认功能。
按照msdn文档,windows的linger与posix标准是一致的,默认是关闭(off)的调用close系统会在后台将没有发送出去的数据发送完。
但是实际调测时,发现一旦调用closesocket连接就会被reset了,这和linger开启(on)并且等待时间设置为0的效果一样了。
分析有可能是安装了一些杀毒软件,勾住了网络API,而这些钩子没有严格按照标准实现。
临时解决办法是close前等待对方关闭,确定所有数据对方都收到,再关闭,这相当于实现了系统的默认功能。