为啥使用 dispatch_async() 方法时 AsyncSocket 无法连接到主机?
Posted
技术标签:
【中文标题】为啥使用 dispatch_async() 方法时 AsyncSocket 无法连接到主机?【英文标题】:Why AsyncSocket can't connect to host when using dispatch_async() method?为什么使用 dispatch_async() 方法时 AsyncSocket 无法连接到主机? 【发布时间】:2015-04-20 03:00:39 【问题描述】:我在使用 dispatch_async 方法来使用 AsyncSocket 时有点困惑。 这是我的代码
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
_socket = [[AsyncSocket alloc] initWithDelegate:self];
[_socket connectToHost:@"192.168.1.122" onPort:9501 error:nil];
[self sendCurrentLocation];
);
我使用此代码进行连接,但它不起作用,事件- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err
未被调用。
有人知道为什么吗?谢谢。
附言原谅我的英语。
【问题讨论】:
【参考方案1】:AsyncSocket 数据传输是异步的,它是把数据放在队列中,使用线程发送,所以我们不需要再异步做一遍。
【讨论】:
以上是关于为啥使用 dispatch_async() 方法时 AsyncSocket 无法连接到主机?的主要内容,如果未能解决你的问题,请参考以下文章
如何在目标 c 中使用 GCD dispatch_async 调用/编写以下方法
尝试将 dispatch_async 与 cocos2d 函数一起使用时出错