NSXPCConnection이있는 소켓을 사용할 때 문제가 발생합니다.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 관련 문제가 있습니까?