【发布时间】:2025-12-22 18:15:06
【问题描述】:
完整的错误是:
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)
"at 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
我认为这是一个窗口/网络的事情。 谁能帮我解决这个问题??
【问题讨论】:
-
... 而
ins是一个 BufferedReader 用于什么流,究竟是什么?您应该发布更多信息 -
向我的问题添加了更多信息
标签: java