我正在使用(Java)TCP套接字连接到支持网络的设备。
考虑以下情况:
1)成功创建TCP套接字连接
2)网络连接中断很短时间(我只需拔掉网线即可测试)
3)我的程序关闭套接字。
4)插座的另一侧只响应我方的要求;因此,连接另一端的插座不一定检测到断开的连接
5)重新建立网络连接
6)我的程序试图再次打开套接字
7) - >获得SocketException: connection refused
为什么?
因为另一端的套接字认为tcp连接仍然打开,因此拒绝同一端口的任何其他连接请求。
接下来会发生什么?
大约5分钟后,我的程序可以再次打开套接字,因为另一端检测到连接不再处于活动状态。
问题:
有没有办法缩短时间,直到我能够重新连接?我无法对“其他”网站进行任何更改,即我无法更改已启用网络的设备的tcp连接处理。