2015-10-27 28 views
2

我必须通过Watch的tcp套接字连接远程服务器。来自WatchOS 2和CFStream的套接字连接

我已经使用CFStream编写了一段代码,它完全可以在Watch模拟器中使用。当我尝试打开使用CFStreamCreatePairWithSocketToHost与服务器的连接

The operation couldn’t be completed. Can't assign requested address (Code = 49)

当我在观看运行它,我得到这个错误。

苹果的文件宣称,CFStreamCreatePairWithSocketToHost

Available in watchOS 2.0 and later.

,所以我希望它有应该工作,但我发现这个苹果的工程师答案,确认有没有办法打开,从监视TCP连接:

Socket communication does not work real Apple Watch

任何人都可以澄清,并帮助我理解?

假设我无法从Watch打开一个tcp连接,由于我不能使用[NSURLSession],我有什么样的替代方法?

我可以使用[WCSession]提供的通信方法之一,但当iPhone应用程序未运行或不在前台时它们是否工作?

回答

1

您可以使用WCSession's sendMessage API在后台唤醒iOS应用程序并让它为您完成Stream工作。

+1

是的,这是我已经做的。它很尴尬,但实际上它正在工作。正如预期的那样,速度和吞吐量相当低(模拟器和手表),我正在努力过滤不必要的消息。感谢您的建议。 – Fab

+0

我处于相同的状态...然后我使用手机作为TCP通信的桥梁,但手机处于待机状态时通信非常缓慢。 – Lorenzo