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 回答