[英]Java error - Software caused connection abort: recv failed
完整的错误是:
java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at chat.run(chat.java:76)
at java.lang.Thread.run(Thread.java:722)
“在chat.run(chat.java:76)”是这一行:
System.out.println("[_in_"+(line=ins.readLine())+"_]");
line是一个字符串,而ins是一个BufferedReader
ins = new BufferedReader(new InputStreamReader(_sock.getInputStream()));
_sock正在
Socket _sock = null;
_sock = serv_sock.accept();
这发生在我的服务器java而不是我的客户端java ...而且,当我不发送任何东西一段时间时会发生这种情况
- - -编辑 - - -
我再试一次; 首先它40分钟无所事事它仍然有效,然后我再等了40分钟,这次它没有用。
它似乎有点随意..我无法弄清楚是什么导致它。
我拥有的文件是* [client.java],[chat.java],[vlc.java] * [server.java],[chat.java],[vlc.java]
虽然聊天不同(因为我还没有在客户端和服务器上完成线程),因此vlc文件在两者中是相同的
这是代码;
SERVER
server.java: pastebin.com/GH8ShcGp
chat.java : pastebin.com/iaL23kSb
vlc.java : pastebin.com/9kyrbh5q
CLIENT
client.java: pastebin.com/HDK450Jg
chat.java : pastebin.com/CfHrEUkE
vlc.java : pastebin.com/SfZgYy58
我认为这是一个窗口/网络的事情。 有人请求帮我解决这个问题?
我无法使用您的代码和localhost-connections在我自己的计算机上复制您的确切问题,但在阅读了“BufferedReader.readLine()抛出java.net.SocketException:软件导致连接中止:recv失败”之后的几个不同页面,我相信这与您的网络有关。 由于TCP超时或传输中的数据损坏,连接似乎终止。
如果这发生在localhost-connections(同一台计算机上的服务器和客户端)上,它可能是一个故障内存,否则你可能在某处某处有一个破坏的网卡,路由器或电缆。 如果您使用无线技术,它们可能非常不可靠。
此错误恰恰是由于网络问题而发生的。 当与数据库的连接失败并且应用程序无法检索所需数据时,它就会出现。 问题可能出在连接线或调制解调器上。 尝试更改它们。 否则检查您的数据库访问在SQL开发人员等,如果它工作正常,可能在事务超时有问题。
有两种可能性:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.