これはjavaのメッセンジャープロジェクトの一部です。クライアントはチャットへの直接接続を使用するため、eavryクライアントは一部のポートでリッスンし、他のクライアントはそのアドレスへのソケットを作成します。しかし、別のスレッドでServerSocket.accept()を呼び出すと、すべてのスレッドが中断されているように見えます。これは、そのコマンドを実行した後に何も起こらないことを意味します。ここに新しいスレッドを作るコードがあります。別のスレッドで接続をリッスンする
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で8つの質問をしましたが、そのうちの1つのみに対する回答は受け入れています。これは、あなたが本当にあなたの質問に適切に回答した人が誰もいないと思わない限り、無礼とみなされます。 – Dan