双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

关于Socket Connection reset 问题

JerryZhou_ JerryZhou_ 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
之前接触socket较少、有个问题想咨询大家一下 谢谢、
异常信息:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at obi.youyou.utils.Chat.run(Chat.java:41)


相关代码:
public class Chat extends Thread {
private Socket socket;

public Chat(int count, Socket socket, List<Socket> socketList) {
this.socket = socket;
}

public void run() {
BufferedReader reader = null;
PrintWriter writer = null;
try {
reader = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
String message = "";
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
//socket.setSoTimeout(10000);
while (true) {
message = reader.readLine(); ========此处为41行=======
// 接收到客户端的bye信息,客户端即将退出,并将bye写入到该客户端
if (null==message) {
SocketTest3Server.count--;
System.out.println( SocketTest3Server.count+ " null下线 " );
SocketTest3Server.socketList.remove(socket);
//new Chat(count, socket, socketList).run();
break;
}
// 向所有的客户端发送接收到信息,实现群聊
for (int i = 0; i < SocketTest3Server.socketList.size(); i++) {
writer = new PrintWriter(SocketTest3Server.socketList.get(i).getOutputStream());
String username=message.substring(0,message.indexOf("#$*"));
String messages=message.substring(message.indexOf("#$*")+3,message.length());
messages=SensitiveUtils.doFilter(messages);
writer.println("{\"talk\":{\"username\":\""+username +"\",\"time\":\""+df.format(new Date())+ "\",\"message\":\"" + messages+"\"},\"image\":[]}");
//System.out.println("{\"talk\":{\"username\":\""+username +"\",\"time\":\""+df.format(new Date())+ "\",\"message\":\"" + messages+"\"},\"image\":[]}");
writer.flush();
}
}

} catch (Exception e) {
SocketTest3Server.count--;
System.out.println( SocketTest3Server.count+ " Exception下线 " );
SocketTest3Server.socketList.remove(socket);
//new Chat(SocketTest3Server.count, socket, SocketTest3Server.socketList).run();
e.printStackTrace();
}
}
}
...全文

相关推荐

java.net.SocketException Connection reset 解决方法

java.net.SocketException Connection reset 解决方法

weixin_39260028

java.net.SocketException: Connection reset 解决方法

最近纠结致死的一个java报错java.net.SocketException: Connection reset 终于得到解决

weixin_38564503

java中的connection reset 异常处理分析

本文主要介绍了java中的connection reset 异常处理分析的相关资料,具有很好的参考价值。下面跟着小编一起来看下吧

weixin_38721691

Java Socket常见异常处理

在java网络编程Socket通信中,通常会遇到以下异常情况:   第1个异常是 java.net.BindException:Address already in use: JVM_Bind。   该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时。异常的原因是以为与port一样的一个端口已经被启动,并进行监听。此时用netstat -an命令,可以看到一个Listending状态的端口。只需要找一个没有被占用的端口能解决该问题了。   第2个异常是java.net.ConnectException: Connection

weixin_38663733

socket错误代码对应表

Socket错误代码对应表 提示: 在命令提示符下输入:net helpmsg 1xxxx 就能够得到Windows系统提供的错误提示的详细解释。 出现网络联机错误Socket error #11001 表示您的计算机无法连上服务器,请检查您的Proxy设定以及Proxy相关账号,或暂时取消您防毒软件的「个人防火墙」。 · 出现网络联机错误Socket error #11004 应该是网络联机状态问题,请用户检查网络联机是否正常。 · 出现网络联机错误Socket error #10060 Connection Timed Out 表示您与服务器发生联机逾时错误,请检查您的Proxy相关设定,以及Proxy Server是否已将SSL 443 port打开。

天锐绿盾加密软件
评论 7
收藏 已收藏
分享
返回顶部
JerryZhou_
Java EE 67,535 成员 225,843 内容