iOS 使用GCDAsyncSocket后接受不到服务器返回的数据

iOS 码拜 7年前 (2015-11-15) 1660次浏览
当前项目是:摄像头每输出一帧之后调用 [asyncSocket writeData:data withTimeout:-1. tag:TAG_SEND];向服务器发送数据,然后[asyncSocket readDataWithTimeout:-1 tag:0]; 请求Socket数据, 但发现没有调用completeCurrentRead函数,也就是没有调用
– (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag;
怎么回事呢?
此问题出现在iphone6测试中,在itouch中的时候偶尔会出现。 并且即使读取数据成功,在一段时间之后,又读取不到数据了。 困扰很久了,求高手解答
解决方案:20分
根据本人GCD多线程发送http请求的经验来看,请求线程在执行请求任务后,这个线程就注销了,原因是请求是异步的,导致没有线程来处理请求的返回事件,或叫函数。改成同步请求试试。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明iOS 使用GCDAsyncSocket后接受不到服务器返回的数据
喜欢 (0)
[1034331897@qq.com]
分享 (0)