Java线程重叠

时间:2014-03-27 14:04:10

标签: java multithreading swing runnable

我在代码中有超过1个线程时遇到麻烦。我收到错误:

java.net.BindException: Address already in use: JVM_Bind
Exception in thread "Thread-0" java.lang.NullPointerException

这是我的代码:

   public static void main( String args[] )
    {

    Thread t1 = new Thread(new server(1));
   t1.start();  

  Thread t2 = new Thread(new server(2));
   t2.start();  
   }

当线程t2代码被注释掉时,它可以正常工作。

我不太清楚为什么会收到这个错误,对我来说没有意义。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:3)

您必须更改第二个ServerSocket实例的端口,因为只有一个ServerSocket可以同时绑定到同一个端口。

我建议您使用以下内容改进server课程:

public class server {
  private static int port = 5000;

  public server(int yourParameter) {
    /*...*/
    service = new ServerSocket(port++);
    /*...*/
  }
}

此代码允许您的服务器绑定到始终增加的端口,从5000开始。