2010-11-19 1 views
3

IP를 지정하여 두 장치간에 기본 메시지 pasing을 구현하려고합니다.iPhone에서 CocoaASyncSocket 연결을 수신하지만 새 소켓에서 대리자를 호출하지 않습니다.

UInt16 port = 59647; 
NSError *err = nil; 
[socket acceptOnPort:port error:&err]; 

didAcceptNewSocket 위임이 제대로 호출되고, 접속 IP에 대한 새로운 소켓을 반환해야합니다 : 포트를 하나의 장치는 다음과 같이 듣고 그 청취 소켓을 지시합니다. 지금까지 내가이 일을 말할 수있는 한, 새로운 소켓은 didConnectToHost을 호출해야하는데, 지금까지는 알 수 없다.

didConnectToHost은 소켓으로 연결을 초기화하는 장치가 올바르게 연결되기 때문에 올바르게 연결됩니다.

나는 몇 NSLogs 제외 didAcceptNewSocket에서 아무것도하고이 후 필요하지로 (새에 이전 청취 소켓을 설정하고 그 전에 아무 것도 변경하지 않은 다른 변수에 할당하는 데,도 아니에요 그것을해야한다).

수신 측에서 내 새 소켓을 만들지 못하면이 델리게이트를 호출 할 수 없습니까?

답변

1

당신은 클라이언트와 서버 다루고 있기 때문에, 호스트 (다른 ​​방법은 주위에)에 연결하는 클라이언트입니다으로 만 클라이언트가 socket:didConnectToHost:port: 위임 메소드를 호출 것을 깨닫게하는 것이 중요하다.

서버에서 수신 대기 소켓을 첫 번째 인수로 사용하여 socket:didAcceptNewSocket: 대리자 메서드가 호출됩니다.

+0

사실 내가 이것을 한 이후로 나이가 들었지만, 이것은 뒤늦은 견해에서 건전한 추론처럼 보입니다. – JKomusin