[英]Giving “unreachable code” error
美好的一天。 有人可以帮我吗。 我似乎找不到解决此问题的方法。 我不知道为什么在关闭InputStream和套接字时会出现“无法访问的代码”错误。
感谢您的帮助。
public void run() {
try {
socket = new Socket(dstAddress, dstPort);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
int bytesRead;
InputStream inputStream;
while (true) {
inputStream = socket.getInputStream();
while ((bytesRead = inputStream.read(buffer)) != -1){
byteArrayOutputStream.write(buffer, 0, bytesRead);
response += byteArrayOutputStream.toString("UTF-8");
}
textResponse.setText(response);
if(response == "Server: You are connected to Android Server"){
Log.v("ok","ppp");
}
if(response == "OK"){
Log.v("ok","ooo");
}
}
inputStream.close(); --------unreachable code
socket.close(); --------unreachable code
} catch (UnknownHostException e) {
e.printStackTrace();
response = "UnknownHostException: " + e.toString();
} catch (IOException e) {
e.printStackTrace();
response = "IOException: " + e.toString();
}
}
while (true) {}
是一个无休止的循环,您没有脱离它,因此这两个close()
语句不可访问。
在while
循环内满足条件while
,可以使用break;
语句以继续执行while
范围以下的代码。
t while(条件){inputStream = socket.getInputStream();
while ((bytesRead = inputStream.read(buffer)) != -1){
byteArrayOutputStream.write(buffer, 0, bytesRead);
response += byteArrayOutputStream.toString("UTF-8");
}
textResponse.setText(response);
if(response == "Server: You are connected to Android Server"){
Log.v("ok","ppp");
}
if(response == "OK"){
Log.v("ok","ooo");
}
}
您的while (true)
一直在循环播放。 您需要花点时间去下一行。 在您的情况下,由于不会结束,因此不会转到下一行。 您可以更改,而到如果它它不是循环语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.