关于 TCP 连接意外断开重连的问题

2020-08-04 09:39:09 +08:00
 hzt1234h

关于 TCP 连接意外断开,如 kill 指令将程序杀死,然后再次启动程序,能否建立连接呢?还有就是这其中会不会有什么问题,会不会接收到以前的数据

2843 次点击
所在节点    Linux
5 条回复
opengps
2020-08-04 10:03:12 +08:00
1,如果设计了自动重连,实际上已经是新的连接,这取决于软件设计
2,不会收到以前数据,一个 socket 断开之后,一段时间内( 2 倍的某个值,具体叫啥记不清了)是不会重新使用该端口的
BingoXuan
2020-08-04 10:08:00 +08:00
不会,当你重新启动程序之后资源就重新配置了。最简单方法是服务端记录客户端 session 。
hzt1234h
2020-08-04 11:04:06 +08:00
大佬提醒我了,忘记同一个端口是不会紧连着使用的,看来 TCP 卷一又要重新看了[笑哭]
hzt1234h
2020-08-04 11:04:30 +08:00
@opengps
大佬提醒我了,忘记同一个端口是不会紧连着使用的,看来 TCP 卷一又要重新看了[笑哭]
ChristopherWu
2020-08-04 11:23:32 +08:00
TCP 只能保证一定时间内重发丢了的数据,收到了 RST 包后断开了,就没办法恢复链接了。需要上层来保证

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/695415

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX