GCDAsyncSocket客户端/服务器无法通过iOS访问点工作

时间:2016-09-29 16:36:11

标签: ios tcp bluetooth gcdasyncsocket nsnetservice

我使用GCDAsyncSocket(7.5.0)进行了非常简单的TCP客户端/服务器实现,并且我使用NSNetService进行服务发现。 它仅在本地wifi网络上使用,它可以工作2年没有问题(只是说:我正确使用GCDAsyncSocket)。

...直到我尝试使用第三个iOS设备作为提供客户端和服务器连接的wifi网络的接入点。

同样,当第三个iOS设备通过蓝牙共享其连接来连接客户端和服务器时。

服务发现没问题,但是一旦我获得了IP地址和端口,我就无法连接并收到此错误:

Error Domain=NSPOSIXErrorDomain Code=64 "Host is down" UserInfo={NSLocalizedDescription=Host is down, NSLocalizedFailureReason=Error in connect() function}

我尝试限制IPv4和IPv6(两者都是由服务发现提供),我也尝试使用GCDAsyncSocket存储库的ipv6 git分支和各种参数。

我的主要问题是:是否可以通过wifi或蓝牙iOS接入点建立简单的TCP连接,如果是这样的话?

我的第二个问题是:为什么NSNetService服务发现工作而不是简单的TCP连接?我知道这些协议不具有可比性,但仍然让我感到困惑。

1 个答案:

答案 0 :(得分:1)

听起来对我而言,你的问题在于与蜂窝网络的联系。连接到蜂窝网络时,会导致IP地址出现问题。请参阅Cocoaasyncsocket Github page中的讨论。