TCP连接在短时间中断后被拒绝



我正在使用(Java)TCP套接字连接到启用网络的设备。

考虑以下场景:

1) TCP套接字连接成功创建

2) 网络连接短时间中断(我只是通过拔下网络电缆来测试)

3) 我的程序关闭了套接字。

4) 套接字的另一侧只响应来自我一侧的请求;因此,连接另一端的套接字不一定检测到断开的连接

5) 网络连接已重新建立

6) 我的程序尝试再次打开套接字

7) ->获取SocketException: connection refused

为什么

因为另一端的套接字认为tcp连接仍然打开,因此拒绝了同一端口的任何其他连接请求。

接下来会发生什么

大约5分钟后,我的程序能够再次打开套接字,因为另一端检测到连接不再处于活动状态。

问题:

有什么办法可以缩短我重新连接的时间吗?我无法在"其他"站点上进行任何更改,即,我无法更改启用网络的设备的tcp连接处理。

如果不能更改TCP连接在另一端的处理方式,那么在这种情况下,您将无能为力。这是Java套接字的常见问题。

最新更新