在做iOS 客户端 Server-Client项目的时候,需要Client登录和长连接。所以,网络和socket的问题,变得重要起来。
在网上查阅找一些资料,供网友参考,下面是遇到的一些错误码:
* Domain=NSPOSIXErrorDomain Code = 51 "Network is unreachable"
* Domain=NSPOSIXErrorDomain Code = 54 "Connection reset by peer" 连接复位 "在连接断开后的读和写操作引起的"
* Domain=NSPOSIXErrorDomain Code = 57 "Socket is not connected"
* Domain=NSPOSIXErrorDomain Code = 60 "Operation timed out"
* Domain=NSPOSIXErrorDomain Code = 61 "Connection refused"
* Domain=NSPOSIXErrorDomain Code = 65 "No route to host"
* 更多的错误码在 #include <sys/errno.h>里
Domain=NSPOSIXErrorDomain Code = 65 "No route to host"
网上
以上摘自:http://stackoverflow.com/questions/3635412/intermittent-no-route-to-host-on-ios-flight-mode-off-then-on-fixes
Domain=NSPOSIXErrorDomain Code = 57 "Socket is not connected"
Domain=NSPOSIXErrorDomain Code = 60 "Operation timed out"
● 连接超时,用vpn或者换个时间再更新就可以了
● 返回一次,重新进入就行,不必象LS说的那么麻烦!我就是这么搞定的
● 有道理!我就是把这个源删掉,其他就全部正常了的!是cydia.sellize.com。楼主可以试试。
● 如果你的威锋源还是旧地址你换成新地址,我的是这么解决的。
● 这两天人多,服务器受不了。连接超时,多等等就好了
● 网络问题!我的联通3g也是这样,不过用wifi就好了
Domain=NSPOSIXErrorDomain Code = 61 "Connection refused"
如果是客户端去连接对应服务端的端口,肯定需要服务端的端口开着的。我估计你的服务端也是自己写的。
1、可能是客户端连接后没有close,次数一多,服务端没资源提供服务而连接不上,你的情况close了,而且20~30次不会是这种问题。
2、服务端没开,你所说的端口是开着的我不是很相信,我觉得更多的可能是你的服务端不健壮,你用客户端send了几次后把服务端的程序给搞死了。
3、第三种可能就是网络问题,我觉得可能性不大。
综上,我认为是2情况导致,你下次模拟重现的时候,如果再发生你说的情况,请到你开服务端的程序看看,看是不是被搞死了。
Domain=NSPOSIXErrorDomain Code = 51 "Network is unreachable"
Domain=NSPOSIXErrorDomain Code = 54 "Connection reset by peer"
1,如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。
2,一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。
简单的说就是在连接断开后的读和写操作引起的。
所以出现Connection reset by peer的原因是对端服务器异常退出了此次连接。
客户端遇到这种情况,只有重新和服务器端建立连接。我遇到的这种情况下,有时要重试5次左右才能够正常连接上。