我的应用程序使用特定源端口与服务器建立出站连接(预期防火墙问题 - 强化系统可能需要提前指定端口)。
我的问题是我的应用程序最初建立了连接。但是,如果连接中断,它会重试,但套接字会收到一个 BindException 说“正在使用的地址”。情况并非如此,如 netstat -pant 所示。它表明源端口/远程套接字对不存在(即,我什至没有在等待模式下看到它,连接只是不存在)。我将尝试永远连接,但没有任何成功。我认为如果之前的连接存在问题,它最终会超时,但事实并非如此。我永远得到绑定异常。
就我而言,我从 10.0.1.20:4002 连接到 10.0.1.229:4001。于是我用netstat去寻找源socket(10.0.1.20:4002)或者远程socket(10.0.1.229:4001),但是在初始连接断开后都没有找到,说明该地址不应该在使用中.
即使 netstat 没有报告它,是否有什么东西会导致这种连接仍然存在?
请注意我在 linux 上,而且我意识到使用随机源端口可以解决我的问题,但不能解决它。
请告诉我。
谢谢,jbu