Socket 连接 过程中超时问题的处理

根据公司需要最近所了一个广播通信的项目,交给测试的时候发现在广播的过程中经常会出现断线的问题,回来自己亲测确实有这样的问题,但是很奇怪的是在下班后再去测试这样的问题就基本不会出现 ,什么原因呢很困惑 ,开始还怀疑是不是音频录入采样参数设置出了什么问题,最后确定不是,就分析是不是Socket连接出了问题 后来一看还真是。

Socket通信我使用的是GcdAsynsocket这个框架很强大的Socket框架

在代理方法 - (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err中输出error

你会看到这样的错误:ErrorDomain=GCDAsyncSocketErrorDomain Code=4 "Read operation timed out"UserInfo=0xa8db6a0 {NSLocalizedDescription=Read operation timed out}

如何修改:

在GcdAsynsocket.m方法中找到:

- (void)setupReadTimerWithTimeout:(NSTimeInterval)timeout

断点调试出你自己的超时时间,系统给的设置是 if (timeout >= 0.0),只需要把你的超时时间修改为你调试出的超时时间大就OK了!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容