mqttiOS

iOS 长连接-GCDAsyncSocket常见错误整理

2020-08-12  本文已影响0人  FieryDragon

code:1

重复连接

code:1,domain:GCDAsyncSocketErrorDomain,userInfo:{
NSLocalizedDescription = Attempting to connect while connected or accepting connections. Disconnect first.}

code:4

在设置时间内未完成读操作。
可复现:连接成功后,设置时间内服务器不向客户端发送数据。
Error Domain=GCDAsyncSocketErrorDomain Code=4 "Read operation timed out" UserInfo={NSLocalizedDescription=Read operation timed out}

code:7

服务器断开

Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" UserInfo={NSLocalizedDescription=Socket closed by remote peer}

code:8

通常是由于没有网络,比如数据或者wifi处于关闭状态或者设备处于飞行模式下,此时socket连接一般会报该种错误.
可复现:连接成功后断开网络,连接失败后,重新连接。
Error Domain=kCFStreamErrorDomainNetDB Code=8 "nodename nor servname provided, or not known" UserInfo={NSLocalizedDescription=nodename nor servname provided, or not known}

code:51

网络断开,不可用.

code:51,domain:NSPOSIXErrorDomain,userInfo:{
NSLocalizedDescription = Network is unreachable;
NSLocalizedFailureReason = Error in connect() function
}

code:57

此种情况一般是socket处于连接状态中时,网络突然断开时导致.
可复现:连接成功后断开网络。
Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={_kCFStreamErrorCodeKey=57, _kCFStreamErrorDomainKey=1}

code:60

TCP套接字调用connect会激发三次握手,内核发送一个SYN分节,若无响应则等待6s后再次发送一个,仍无响应则等待24s再发送一个,若总共等了75s后仍未收到响应则返回ETIMEDOUT错误.

code:60,domain:NSPOSIXErrorDomain,userInfo:{

NSLocalizedDescription = Operation timed out;

NSLocalizedFailureReason = Error in connect() function

}

code:61

此种情况一般是由于socket后台服务器对应的端口服务没有起来导致,客户端如果socket在连接中报Code = 61这个错,基本可以肯定是socket后端端口服务没有起来,直接找后端即可.

code:61,domain:NSPOSIXErrorDomain,userInfo:{
NSLocalizedDescription = "Connection refused";
NSLocalizedFailureReason = "Error in connect() function";
}


Asyncsocket常见错误码
iOS GCDAsyncSocket 错误提示 57
Socket 连接错误及原因
关于socket的connect超时的问题
网络编程Socket之TCP之connect详解
网络编程socket之connect函数

上一篇 下一篇

猜你喜欢

热点阅读