私は最近、ソケットプロジェクトに参加しています。コードをデバッグしているときに問題が見つかりましたが、その理由がわかりません。以下は私のコードです
// some code that open a socket connection and put inputstream into a BufferedReader called 'in'
String input;
input= (String)in.readLine();
do{
System.out.println(input);
}while(input!=null);
out.close();
in.close();
Socket.close();
ご覧のとおり、上記のコードは無限ループを作成します。サーバー側から文字列を送信すると、その文字列の println が保持されます。
以下のようにすれば
String input;
do{
input= (String)in.readLine();
System.out.println(input);
}while(input!=null);
out.close();
in.close();
Socket.close();
問題は解決し、うまく機能します。サーバーサイトから文字列を送信するたびに、一度だけ印刷されます。しかし、ループを終了せず、次の行に進んでソケット接続を閉じませんでした。
だからここに私の質問があります。do while ループの中に入れると。ループを終了して次の行に移動し、接続を切断する必要がありますか?? do while ループが 1 回だけ実行され、次の行に進まなかった理由を誰か説明できますか?
一番