winsock生成重置(RST)的tcp closesocket方法

问题描述 投票:2回答:2

Windows套接字关闭(closesocket)函数生成RST。

在linux上,当我调用close函数关闭一个tcp套接字时,它从两个客户端服务器通过fin / ack并且套接字被关闭。

但是在windows winsock上,每当我调用closesocket时,它总是生成RST消息。

我尝试使用关机调用。它正在产生FIN。但最后我必须调用closesocket并发送RST。

有没有办法调用closesocket来释放套接字资源而不发送RST消息。

tcp winsock closesocket
2个回答
2
投票

有几件事可以导致closesocket()发送RST而不是FIN:

  1. 当套接字接收缓冲区中有未读数据未决时调用它。
  2. 在将SO_LINGER选项设置为“on”且超时为零后调用它。

0
投票

如果没有更多数据要发送和/或接收,您可以使用'shutdown()'。

例如:关机(clisocket,SD_BOTH);

© www.soinside.com 2019 - 2024. All rights reserved.