与“使用中的地址:JVM_Bind”相关的一些问题

时间:2011-05-26 06:14:20

标签: java eclipse windows-xp port

我用Java编写套接字程序,有时会出现此错误。我有一些问题:

1)我使用Eclipse运行我的套接字应用程序并单击"终止"最后但有时仍会得到错误。为什么?

2)有没有办法以编程方式关闭端口?这样的事情:

if(isPortOpen(portNumber)) {
   closePort(portNumber);
}
//// Run my app here

3)有没有办法避免此错误(在编程或操作系统中)?

2 个答案:

答案 0 :(得分:2)

套接字选项SO_REUSEADDR可以帮助重用以前一直在使用的端口(一个程序在几秒钟之前终止)。

只需创建一个未连接的套接字,使用

socket.setReuseAddress(true);

在连接插座然后连接它之前。

请参阅javadocthis SO post

答案 1 :(得分:1)

  1. 理想情况下,当应用程序被终止时,应关闭打开的端口。
  2. 如果你有该端口的套接字对象,那么socket.close()应该关闭该端口。
  3. 但在java中,您无法关闭其他应用程序打开的端口
  4. 您可以使用TCPView关闭未发布的端口