2009-10-08 38 views
2

我的应用程序使用特定的源端口与服务器建立出站连接(预期会出现防火墙问题 - 硬化系统可能会需要提前指定端口)。java:在不使用时绑定异常地址使用错误(如netstat所示)

我的问题是,我的应用程序最初进行连接。但是,如果连接断开,它将再次尝试,但套接字将得到一个BindException,表示“地址正在使用”。情况并非如此,如netstat -pant所示。它显示源端口/远程套接字对不存在(即,我甚至没有在WAIT模式下看到它,连接就不存在)。我会尽力永远连接,没有任何成功。我会认为,如果这是上一次连接徘徊的问题,它最终会超时,但事实并非如此。我永远得到绑定异常。

在我的情况下,我连接到10.0.1.229:4001从10.0.1.20:4002。所以我使用netstat来查找源套接字(10.0.1.20:4002)或远程套接字(10.0.1.229:4001),但在初始连接断开后都未找到,表明地址不应该被使用。

即使netstat不报告它是否会导致此连接仍然存在?

请注意我在linux上,也意识到使用随机源端口将解决我的问题,但不解决它。

请让我知道。

感谢, JBU

回答

2

close()方法没有被调用时某些不好的事情发生了 - 卫生署!

+0

感谢您发表了这个问题。我有一个非常类似的问题,但我很难用外部脚本杀死我的服务,所以我想不出在服务终止之前关闭连接的好方法。如果你可以看看这个问题,我会非常感激! http://stackoverflow.com/questions/15140588/java-server-not-releasing-connection-lock – Sal 2013-02-28 16:28:00

相关问题