這是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