【发布时间】:2015-01-06 20:18:27
【问题描述】:
在使用带有 NSXPCConnection 的套接字时遇到问题。
基本上,有一个主进程和一个辅助进程在运行,通过 NSXPCConnection 建立。该辅助进程需要充当服务器并侦听特定端口(例如 111),该端口接收外部连接。
助手进程使用 Apple 提供的 TCPServer 助手类(CFSocket 的包装器)打开一个监听套接字。代码在这里找到:
https://code.google.com/p/iphone-remotepad/source/browse/trunk/RemotePad/TCPServer.h?r=238
套接字在- (BOOL)start:(NSError **)error中打开成功。
外部客户端可以通过 111 端口建立。 (通过telnet localhost 111 在终端中测试)。
但是,辅助进程永远不会收到 TCPServer 回调 TCPServerAcceptCallBack。
帮助进程启用了com.apple.security.network.client 授权。
另外,当我在主应用程序而不是辅助进程中运行 TCPServer 时,在端口 111 上设置服务器,并尝试连接到端口 111,我确实收到了回调。
关于为什么辅助进程没有收到套接字回调的任何想法? XPC 相关问题?
【问题讨论】:
标签: tcpserver entitlements xpc cfsocket nsxpcconnection