iOS程序员iOS Developer

iOS-Domain=NSPOSIXErrorDomain Co

2016-11-23  本文已影响1050人  一位不愿透露姓名的王先生_
一、先看完整报错
Error Domain=NSPOSIXErrorDomain Code=54 "Connection reset by peer" UserInfo={_kCFStreamErrorCodeKey=54, _kCFStreamErrorDomainKey=1}
CodeKey=54.png
二、报错可能产生来源
  1. 首先来说我自己遇到的情况,之前用公司内部的服务器一直好好的,准备迁移到外网服务器的时候,突然就遇到这种情况了,好在不是突发情况,比较容易判定是公司服务器那边的问题
  1. 但是自己在网上查了查该,也有一种可能是发生在客户端的问题
三、报错可能产生原因
  1. 服务器端Socket关闭(主动或被动关闭),客户端仍然向其发送请求,发送的数据包会引发该异常(Connection reset by peer->对等节点链接重置)Peer to Peer->就是网络上热火朝天的P2P
  1. 服务器端退出,但退出时并未关闭连接,此时处于断开连接状态,客户端再进行任何读写操作就会抛出异常(Connection reset->链接重置)
四、解决办法

客户端遇到这种情况,只能通过重新和服务器建立连接解决,如果是服务器端问题,只有等待服务器弄好以后才能解决。

五、知识拓展
  1. 在网络的TCP机制中,socket连接的双方都可以调用close( )之类的函数退出当前连接。
  1. TCP根据改进了的三次握手机制通知另一方也退出当前连接,这个过程可以看做是正常socket连接的一部分。
  2. TCP也提供一种复位机制(即时的退出,并清理此次连接相关的所有资源),在一方的程序遇到异常情况断开此次连接后,会向对方发送重置报文。
  3. 简单总结,Connection reset by peer 出现应该就是服务器端异常退出了此次连接。

此文参考大神文章:原文链接

上一篇下一篇

猜你喜欢

热点阅读