Возникла проблема при использовании сокетов с NSXPCConnection.
По сути, есть основной процесс и запущенный вспомогательный процесс, установленный через NSXPCConnection. Этот вспомогательный процесс должен действовать как сервер и прослушивать определенный порт (скажем, 111), который принимает внешние соединения.
Вспомогательный процесс открывает прослушивающий сокет, используя вспомогательный класс TCPServer
(оболочка для CFSocket
), который предоставляется Apple. Код найден здесь: 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?