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函数