首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >winsock生成重置(RST)的tcp关闭套接字方法

winsock生成重置(RST)的tcp关闭套接字方法
EN

Stack Overflow用户
提问于 2018-03-08 06:41:45
回答 2查看 1K关注 0票数 4

Windows socket close(closesocket)函数生成RST。

在linux上,当我调用close函数来关闭tcp套接字时,它会从客户端服务器通过fin/ack,然后套接字就会被关闭。

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

我试过使用关机呼叫。它正在生成FIN。但最后我必须调用closesocket,它会发送RST。

有没有办法在不发送RST消息的情况下调用closesocket释放套接字资源?

EN

回答 2

Stack Overflow用户

发布于 2018-03-08 08:21:51

有几种情况会导致closesocket()发送RST而不是FIN:

当套接字中有未读数据挂起时,在您将SO_LINGER选项设置为'on‘并不超时后,

  1. 调用它。
票数 2
EN

Stack Overflow用户

发布于 2019-02-19 12:37:26

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

例如:关闭(clisocket,SD_BOTH);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49162429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档