关于 TCP 连接意外断开,如 kill 指令将程序杀死,然后再次启动程序,能否建立连接呢?还有就是这其中会不会有什么问题,会不会接收到以前的数据
1
opengps 2020-08-04 10:03:12 +08:00
1,如果设计了自动重连,实际上已经是新的连接,这取决于软件设计
2,不会收到以前数据,一个 socket 断开之后,一段时间内( 2 倍的某个值,具体叫啥记不清了)是不会重新使用该端口的 |
2
BingoXuan 2020-08-04 10:08:00 +08:00
不会,当你重新启动程序之后资源就重新配置了。最简单方法是服务端记录客户端 session 。
|
3
hzt1234h OP 大佬提醒我了,忘记同一个端口是不会紧连着使用的,看来 TCP 卷一又要重新看了[笑哭]
|
5
ChristopherWu 2020-08-04 11:23:32 +08:00
TCP 只能保证一定时间内重发丢了的数据,收到了 RST 包后断开了,就没办法恢复链接了。需要上层来保证
|