基本的なチャット機能 (メッセージの送受信が可能) を備えた Java アプレットを作成しています。クライアントバージョンで接続を処理するために別のスレッドを作成しました。サーバーも、接続されたすべてのクライアントに対してスレッドを作成します。
クライアントの run() メソッドには、受信したメッセージを読み取るための while ループがあります。
while (state == ConnectionState.CONNECTED) {
out.println("Hello Server");
out.flush();
String input = in.readLine();
System.out.println(input);
if(input == null){
connectionClosedFromOtherSide();
}
else {
received(input);
System.out.println(String.format("Recieved something: %s", input));
}
}
ここに私の PrintWriter と私の BufferedReader があります。デバッグの目的で、「hello サーバー」をここに置きます。このコードは問題なく動作しますが、問題は sendtext() メソッドです。
synchronized private void sendText(String tosend) {
if(out != null && state == ConnectionState.CONNECTED){
out.print(tosend);
out.flush();
System.out.println(String.format("sending %s to server", tosend));
}
}
なぜか、このメソッドを呼び出してもサーバー側で受信されません。(ただし、コンソールには送信済みと表示されます)
誰でもこれで私を助けてもらえますか?