2010-01-25 2 views
0

У меня есть клиент/серверное приложение. Клиент на iPhone, сервер на компьютере под управлением Windows. Во-первых, я устанавливаю соединение с моим сервером, и это работает нормально. Когда я ухожу из зоны WiFi - клиент отключается (ожидается). Но когда я снова войду в зону WiFi и попытаюсь подключиться к серверу, соединение устанавливается, но клиент не получает никаких данных. Мне нужно перезагрузить клиентское приложение для подключения к серверу. Почему это происходит? Это происходит всегда, когда я отправляю данные в обоих направлениях примерно с 1 Мбит/с.Проблема с получением данных из сокета после потери сети WiFi

Я буду благодарен за любую идею =)

Благодаря

+0

Да, я использую приложение для повторного подключения. Проблема в том, что сеанс TCP создан, и клиент отправляет квитирующий пакет (мое собственное «рукопожатие», а не TCP) на сервер, а сервер его получает, но ответ с сервера не появляется на стороне клиента. Таким образом, от клиентских данных до данных сервера, но не в обратном направлении. Такое поведение является результатом описанного выше случая. Во всех остальных случаях приложение работает нормально. – 2010-01-26 10:06:48

ответ

0

Когда вы покидаете зону Wi-Fi, Tcp обнаруживает, что не имеет никакого отношения, поэтому сервер прервет соединение Tcp. Вы должны восстановить его, когда вернетесь в диапазон Wifi.

Я не эксперт в этой области, но, возможно, существует ограничение по времени, в течение которого, если вы входите в Wifi, существующее соединение Tcp повторно используется?

Однако, чтобы быть надежным, вы всегда должны указывать свое приложение, чтобы повторить попытку, если работа в Wifi является одним из ваших основных сценариев.

0

Ваш TCP прошел долгий тайм-аут, пытаясь получить данные по ссылке, которая не существует какое-то время. Вам нужно обнаружить это, закрыть сокет и снова подключиться.

Или переключитесь на использование UDP, если вам действительно не нужна надежность TCP (хотя это не его собственное имя, подумайте о UDP как «Протокол ненадежных дейтаграмм», другими словами, нет гарантии доставки, доставки в правильном порядке).

Смежные вопросы