报错:Socket java.net.SocketException: Connection reset

在这里插入图片描述
关于这个报错信息首先查看报错信息是关于什么的错误!而我的错误很明显是关于IO流的读写出了问题!

Connection reset意为连接重置!
原因: 简单来说就是在连接断开后的读和写操作引起的。
流程: 首先,先走一下流程,我们需要先开启服务器端,再开启客户端发送信息,中间会经过三次握手、四次挥手的过程!而服务器端报错连接重置,原因就是在客户端读写数据的过程中,服务器端因意外而关闭,但是此时未关闭连接。(注意:客户端还在读写数据)
查看数据字节数: 出现此问题,先不要慌,查看一下读取文件的字节数是否正确,一般出现这个情况感觉字节数就已经是0了,因为服务器端和客户端无法达成正确的连接来读取数据!

引申出的报错问题: 该异常发生在客户端进行 new Socket(ip, port)操作时,该异常发生的原因是或者具有ip地址的机器不能找到(也就是说从当前机器不存在到指定ip路由),或者是该ip存在,但找不到指定的端口进行监听。出现该问题,首先检查客户端的ip和port是否写错了,如果正确则从客户端ping一下服务器看是否能ping通,如果能ping通(服务服务器端把ping禁掉则需要另外的办法),则看在服务器端的监听指定端口的程序是否启动,这个肯定能解决这个问题。

问题解决: 除了检查ip和端口之外,还需要检查是否在未读取数据的情况下提前把IO流关闭了!简单来说,你的IO流close操作是否写在了finally块中,如果没有写在finally块中,请修改并重新跑起项目查看!

检查ip、端口和IO流的正确性,基本上问题是可以得到解决的! 如果没有得到解决请求下方留言评论,大家一起解决!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值