Прослушивание CocoaAsyncocket на iPhone Приемное соединение, но новый сокет не звонит делегатом
-
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:
Способ делегата вызывается с разъемом прослушивания в качестве первого аргумента.