none
Если сервер не отвечает RRS feed

  • Вопрос

  • Коллеги поделитесь идеями. Есть Клиент-Серверное приложение. У клиента условно есть 3 потока. 1й поток основной (UI). 2й поток слушает сообщения от сервера, а 3й отправляет сообщения серверу.

    В 3м потоке бывают типы сообщений требующие ответа на них. Так как прослушка и отправка в разных потоках, я в потоке отправки инициирую do loop цикл, который ожидает пока переменная с ответом от сервера не перестанет быть null. В основном потоке ожидание визуализируется, что бы пользователь понимал, что процесс идет.

    Вопрос. Как быть если сервер по какой либо причине не отправит ответ на запрос? В качестве теста я имитировал такую ситуацию и получил бесконечное ожидание ответа на запрос. Единственное что приходит в голову это некий timeout, но не могу определится с его размером. Например масса моих пользователей используют USBмодемы. которые в определенных местах работают из рук вон и обмен сообщениями может быть длительным. Не получится ли так, что мой таймаут будет ниже, чем время нужное на отклик у медленного соединение, ведь тогда я лишу работоспособности программу на таком соединении.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    27 марта 2013 г. 19:00
    Отвечающий

Ответы

  • у WCF к примеру по умолчанию TimeOut на отправку - 1 минута, на прием - 10 минут. Можно отталкиваться от этих значений. Как вариант - вывести этот параметр в настройки приложения (хотя бы в конфиг).
    • Предложено в качестве ответа ulcerModerator 28 марта 2013 г. 4:39
    • Помечено в качестве ответа LXGDARKEditor 28 марта 2013 г. 5:57
    27 марта 2013 г. 19:13