У меня есть экземпляр AsyncSocket, который я использую в качестве сервера на iPad, а затем сокет AsyncSocket, работающий на другом iPad, который действует как клиент.У меня есть весь необходимый код для обмена данными между клиентом и сервером - там нет проблем.
Проблема, с которой я сталкиваюсь, заключается в том, что все работает нормально, но во время тестирования моего приложения на наличие ошибокзаметил одну особенно странную (и раздражающую проблему):
Если я выключаю iPad сервера (в этот момент ни один из делегатов сокета не запускается на сервере), то клиент отключается (и входитв цикл, который я сделал, где он постоянно повторяется).Что раздражает, так это то, что даже когда сервер возвращается, клиент все равно не может подключиться к нему.На самом деле, даже если я снова запускаю клиент с нуля, он все равно не может подключиться к серверу.Мне нужно перезапустить приложение сервера, чтобы клиент смог снова подключиться.
Странно то, что эта ошибка возникает только тогда, когда сервер фактически выключен (т.е.перевести в режим ожидания) с кнопки вверху.Если я просто отправляю приложение в фоновый режим с помощью кнопки «Домой», то клиент по-прежнему сохраняет свое подключение к серверу: только когда устройство отключено, клиент получает сообщение делегата о разъединении и отключается, а затем отказывается восстановить соединение.Тем временем сервер совершенно не замечает этого, и ни один из методов делегатов не запускается вообще.
Обобщая мой вопрос:
- Что именно происходит сЭкземпляр сервера AsyncSocket, когда устройство переводится в режим ожидания с помощью кнопки в верхней части iPad?
- Почему не запускаются методы делегирования, а все подключенные клиенты отключаются?
- Что происходит при повторном включении устройства?
- Почему клиенты не могут подключиться?