这是Java的信使项目的一部分连接。由于客户端使用直接连接进行聊天,因此我希望eavry客户端在某个端口上侦听,而其他客户端则需要为该地址创建一个套接字。但是当我在另一个线程中调用ServerSocket.accept()时,看起来所有的线程都被挂起了。这意味着执行该命令后会发生nothings。这是创建新线程的代码。监听在一个单独的线程
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
while(true){
System.out.println("flag1");
Socket socket = listeningSocket.accept();
System.out.println("flag2");
new Chat(socket).setVisible(true);;
jTextArea1.append("successfully connected\n");
}
} catch (NullPointerException e) {
System.out.println("i know");
}
catch (IOException e) {
e.printStackTrace();
jTextArea1.append("error in recieving connection\n");
}
}
});
任何想法如何解决这个问题?
应该阻止大部分时间里,公交车有时要响应其他 –
@kvphxga,麦格理指的是事实,你问Stack Overflow上的八个问题,但接受的答案,只是其中之一。这被认为是粗鲁的,除非你真的觉得没有人充分回答你的任何问题。 – Dan