#iphone #objective-c #xcode
#iPhone #objective-c #xcode
Вопрос:
Мы разрабатываем клиент-серверное приложение. Клиент (приложение для iPhone) и сервер (рабочий стол) обмениваются данными через Wi-Fi. Мы используем TCP / IP.
Каждые пять секунд клиентское приложение отправляет на сервер специальное сообщение (мы называем это ping, но это наш ping). Мы должны протестировать поведение клиента при разрыве соединения с сервером. Я отключаю Wi-Fi на своем рабочем столе. Мы ожидаем получить уведомление о том, что ссылка разорвана через небольшой промежуток времени. Вместо этого уведомление приходит через 4 или 5 минут (клиент использует класс NSStream, поэтому в нем написано «nsstreameventerroroccurrored»).
-
Почему оно приходит так поздно?
-
Как я могу получить уведомление раньше? (скажем, через 5 секунд)
Спасибо.
Комментарии:
1. попробуйте отправить сообщение на вызывающий сервер,
[myOutputStream write:buffer maxLength:length];
если сервер не работает, операция должна завершиться неудачей, чтобы вы могли получить информацию о вызове[myOutputStream streamError]
. Не уверен, что это сработает.2. Я уже использую write:maxLength: в своем ping. Так что это действительно не работает.
3. Вы проверили возвращаемое значение write:maxLength?
4. Да, я сделал. Если соединение разорвано, оно возвращает положительное число.