关于这个报错信息首先查看报错信息是关于什么的错误!而我的错误很明显是关于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流的正确性,基本上问题是可以得到解决的! 如果没有得到解决请求下方留言评论,大家一起解决!