首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在linux C中维护非活动的TCP连接?

问如何在linux C中维护非活动的TCP连接?
EN

Stack Overflow用户
提问于 2013-05-31 02:43:04
回答 1查看 836关注 0票数 1

如果TCP客户端与TCP服务器建立TCP连接。则TCP客户端永远不会向服务器发送任何数据包。

首先,我大致知道TCP服务器附近的防火墙可能会向其发送RST。或者存在强制TCP连接结束的保活超时。但我不知道到底会发生什么?有人能解释一下吗?

其次,是否可以保持此TCP连接,除非我希望它结束?

我只希望TCP服务器能够将这个TCP连接保留在它的TCP堆栈上。但是我不想让TCP客户端参与进来,我不想让客户端发送保活消息。我不想让任何其他的第三方实体参与进来。我不关心TCP客户端是否断开了连接。我只希望当我写TCP服务器的源代码时,源代码能够设法维护服务器上的TCP连接。

注意:我的编程语言是LINUX C

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-05-31 07:10:45

如果您在您的终端启用了keepalive,它将发送定期探测,如果它们不被应答,您的终端将重置连接。Keepalive在默认情况下是关闭的,所以如果你不在你的一端启用它,它就不会从你的一端发生。

然而,对等体仍然可以在他的终端启用它,在这种情况下,他的终端将按照上面的方式运行,而您既不能阻止它,也不能检测它。

剩下的问题就没有意义了。由于多种原因,客户端或防火墙可以随时发送RST。你不能阻止它,你也不能在代码中忽略它。如果由于任何原因在任何地方重置了连接,则无需维护连接。

如果你不想要TCP,那就用别的东西吧。

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

https://stackoverflow.com/questions/16843645

复制
相关文章

相似问题

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