現在、全体的に非常に基本的なチャット アプリケーションを開発していますが、クライアント側とサーバー側の両方から文字列を受信するときに問題が発生しています。私はスレッドを使用してソケットで受信メッセージを受動的にリッスンしていますが、これが問題の原因であると思われます。私はこれを正しい方法でやっていますか?
ソース: 文字列を送信するためのコード:
send.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
messageBuffer = message.getText();
out.println(messageBuffer);
chat.append(username + ": " + messageBuffer + "\n");
message.setText("");
}
});
次に、これを受動的にリッスンします(問題はおそらくここにあります):
public void run(){
while(true){
try {
messageBufferIn = in.readLine();
System.out.println(in.readLine());
chat.append(recipient + ": " + messageBufferIn + "\n");
} catch (IOException e) {
e.printStackTrace();
}
}
}
これを使用してスレッドも呼び出しています:
public static void startChatting(){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
あなたが提供できる助けに感謝します。私はまだスレッド全体に慣れていないので、私の間違いはかなり平凡かもしれません。
編集:問題は、受信者にメッセージを送信しようとすると、何も届かず、接続されていることを確認できることです。実際、System.out.println(in.readLine()); 「null」出力でさえ、まったく通過しません。