2016-09-29 112 views
0

工作,我必须使用GCDAsyncSocket(7.5.0)一个非常简单的TCP客户机/服务器实现,我使用NSNetService服务发现。 它只用于本地wifi网络,它工作2年没有问题(只是说:我有适当的使用GCDAsyncSocket)。GCDAsyncSocket客户端/服务器没有结束的iOS接入点

...直到我试图使用第三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

这听起来像是对我来说,你的问题就出在从蜂窝网络连接。当连接到单元网络时,它会导致ip地址问题。请参阅Cocoaasyncsocket Github page的讨论。

+0

是的,听起来像是这样。我希望我能找到解决方法来建立连接,但目前还不清楚是否以及如何实现这一目标:如果找不到服务器的IP,客户端如何连接到它? –