Прослушивание CocoaAsyncocket на iPhone Приемное соединение, но новый сокет не звонит делегатом

StackOverflow https://stackoverflow.com/questions/4230191

  •  26-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь реализовать базовое сообщение Pasing между двумя устройствами, указав IPS. Когда одно устройство говорит о своем сокете прослушивания, чтобы прослушать следующее:

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

То didAcceptNewSocket Делегат называется правильно, и должен вернуть новый разъем к подключению IP-адреса: порт. Насколько я могу сказать, что это делает это, однако, новая розетка должна быть позвоночна didConnectToHost, что, насколько я могу сказать, это не так.

didConnectToHost Правильно реализован, как устройство, которое инициирует соединение с его сокетом, правильно вызывает его после установления соединения.

Я ничего не делаю в didAcceptNewSocket Помимо нескольких NSLogs И установка старого сокета прослушивания к новой (как его не нужно после того, как он присваивается другой переменной, прежде чем он ничего не изменил, и не следует.

Что может сделать мою новую розетку на стороне слушания, а не называть этот делегат?

Это было полезно?

Решение

Поскольку вы имеете дело с клиентом и сервером, важно реализовать, что только клиент вызовет socket:didConnectToHost:port: Способ делегата, так как это клиент, который подключается к хосту (не наоборот).

На сервере, socket:didAcceptNewSocket: Способ делегата вызывается с разъемом прослушивания в качестве первого аргумента.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top