1

私にとっての問題は、whileループの後に何も実行されませんか? それの何が問題なの?(while ループの終了後の行は実行されません)

client = serverSocket.accept();
BufferedReader in = new BufferedReader(
                            new InputStreamReader(client.getInputStream())
);

while ((line = in.readLine()) != null) {
    Log.i("line",line);
    line111 +=line;
    Log.i("line111",line111);
}

//Any code below this is not executed
Log.i("shan","Shan");
4

2 に答える 2

6

whileループがスタックし、ソケットで次の行を待機しています。ストリームのソースは、その最後で接続を閉じる必要があります。

于 2012-05-19T17:04:32.920 に答える
3

このコード "while ((line = in.readLine()) != null)" は、一定のサイズのファイルから読み取り、最終的にそれに到達する場合にのみ関連します。ソケットから読み取っているときは、ブロッキング状態 (リモート クライアントがデータを送信するのを待っている状態) に入っています。

ループを終了したい場合は、ドケット読み取りメソッドにおそらくタイムアウトを追加する必要があります。

于 2012-05-19T17:01:19.980 に答える