Ouvir o cocoaasyncsocket na conexão de recebimento do iPhone, mas o novo soquete não chama Delegate
-
26-09-2019 - |
Pergunta
Estou tentando implementar uma mensagem básica entre dois dispositivos especificando IPS. Quando um dispositivo diz ao soquete de escuta para ouvir o seguinte:
UInt16 port = 59647;
NSError *err = nil;
[socket acceptOnPort:port error:&err];
o didAcceptNewSocket
O delegado é chamado corretamente e deve retornar um novo soquete ao porta IP: portão. Tanto quanto eu posso dizer, está fazendo isso, no entanto, o novo soquete deve estar ligando didConnectToHost
, o que, tanto quanto eu sei, não é.
didConnectToHost
é implementado corretamente, pois o dispositivo que inicia a conexão com seu soquete o chama corretamente após a criação da conexão.
Eu não estou fazendo nada em didAcceptNewSocket
Além de alguns NSLogs
e definir o soquete de escuta antigo para o novo (como não é necessário depois, e atribuí -lo a uma variável diferente antes não mudou nada, nem deveria).
O que poderia fazer meu novo soquete no lado da audição não chamar esse delegado?
Solução
Como você está lidando com um cliente e um servidor, é importante perceber que apenas o cliente invocará o socket:didConnectToHost:port:
Delegado Método, pois é o cliente que se conecta a um host (não o contrário).
No servidor, o socket:didAcceptNewSocket:
O método delegado é invocado com o soquete de escuta como o primeiro argumento.