我的应用程序连接到热点并建立套接字连接。在从套接字读取时,抛出SocketException,并显示以下消息“软件导致连接中止”。
Socket socket = null;
try {
socket = new Socket(SERVER_IP, SERVER_PORT);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(
1024);
byte[] buffer = new byte[1024];
int bytesRead;
InputStream inputStream = socket.getInputStream();
/*
* notice: inputStream.read() will block if no data return
*/
while ((bytesRead = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, bytesRead);
response += byteArrayOutputStream.toString("UTF-8");
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
response = "UnknownHostException: " + e.toString();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
response = "IOException: " + e.toString();
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
这通常意味着存在网络错误,例如TCP超时。我首先在连接上放置一个嗅探器(wireshark),看看你是否能看到任何问题。如果存在TCP错误,您应该能够看到它。此外,如果适用,您可以检查路由器日志。如果无线涉及任何地方,那么这就是这类错误的另一个来源
否则,您可以Download TCP Test Tool获取Windows并尝试使用您的IP进行测试是否正常工作。
我希望这会对你有所帮助。