【发布时间】:2010-12-05 04:44:38
【问题描述】:
我的应用使用特定源端口与服务器建立出站连接(预计会出现防火墙问题 - 强化系统可能需要提前指定端口)。
我的问题是我的应用最初建立了连接。但是,如果连接中断,它会重试,但套接字会收到一个 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
【问题讨论】:
标签: java exception sockets bind netstat