我在代码中有超过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代码被注释掉时,它可以正常工作。
我不太清楚为什么会收到这个错误,对我来说没有意义。任何帮助,将不胜感激。
答案 0 :(得分:3)
您必须更改第二个ServerSocket
实例的端口,因为只有一个ServerSocket
可以同时绑定到同一个端口。
我建议您使用以下内容改进server
课程:
public class server {
private static int port = 5000;
public server(int yourParameter) {
/*...*/
service = new ServerSocket(port++);
/*...*/
}
}
此代码允许您的服务器绑定到始终增加的端口,从5000开始。