チャット アプリケーションのサーバーで次のコードを使用しています。ここでは、クライアントごとに別のスレッドを使用しています。 コード:
public void run()
{
String msg;
InputStreamReader isReader = new InputStreamReader(sock.getInputStream())
BufferReader r= new BufferedReader(isReader);
int i=0,j=0;
System.out.print("entered run again"+i++);
try{
while((msg=r.readLine())!=null)
{
System.out.println("readed"+msg );
spreadMsg(msg);
}
}catch(Exception e){e.printStackTrace();}
}
}
while ループ "while((msg=r.readLine())!=null)"が無限ループとして動作する理由と、入力した唯一の行を読み取った後に返されない理由。