Конференция "Сети" » Не могу справиться с ошибкой socket error #10054 connection reset
 
  • wipr (06.04.16 16:41) [0]
    У меня есть давно хорошо работающий проект 2-х звенный клиет серверной архитектуры. Работает он только в локалке. Появилась необходимость часть задач выполнять через Internet. Поэтому решил разобраться с 3-х звенной архитектурой. Разбираться начал с DataSnap в качестве обучения выбрал пример по адресу: http://www.webdelphi.ru/2012/08/isapi-mysql-i-datasnap-xe2/. У меня Windows 8.1, Delphi XE3. В данном примере имеются 2 проекта. Один только чтение. Второй чтение, добавление, удаление, изменение. Запускаются и начинают работать все хорошо, но до тех пор пока не остановишься в работе минуты на 3. После такого таймаута в примере где только чтение запрос на connect выдает ошибку: socket error #10054 connection reset by peer. При disconnect онибки нет. А вот в проекте в котором можно менять данные все наоборот, т.е. при открытии ошибки нет, а при попытке применить изменения или закрыть набор выдается эта же ошибка.
    Поиски в инете ничего не дали. Я отлично понимаю, что сервер сбрасывает клиента, который перестал подавать признаки жизни. Понимаю так же то, что можно увеличить таймаут на сервере, но думаю это будет не совсем правильно т.к. количество подключений одновременно возможно будет достаточно большим и это может все сказаться на устойчивости сервера. Хотелось бы узнать как можно победить эту проблему?
  • NoUser © (06.04.16 17:05) [1]
    > пока не остановишься в работе минуты на 3

    и как это в коде выглядит, неужто Sleep(3000)?


    > запрос на connect выдает ошибку: socket error #10054 connection
    > reset by peer.

    10054: An existing connection was forcibly closed by the remote host.

    Маловероятно, чтобы эту ошибку вызвал "запрос на connect"
  • wipr (06.04.16 20:41) [2]
    Маловероятно, чтобы эту ошибку вызвал "запрос на connect"
    в проекте, в котором только чтение данных именно при попытке запроса на connect, это факт.
    и как это в коде выглядит, неужто Sleep(3000)?
    явного sleep-а разумеется нет, но факт остается фактом. Пока я выполняю какие либо действия с набором данных, ошибки нет. Как только 3-4 минуты ничего не делаю то после этого выдается ошибка. Более того оставил клиента минут на 15, монитор уснул, дернул мышкой, а набор данных в клиенте закрыт.
  • Rouse_ © (06.04.16 22:26) [3]

    > Как только 3-4 минуты ничего не делаю то после этого выдается
    > ошибка

    Есть такой нюанс с TCP - прокидывай пустой запрос периодически, либо настрой таймауты с обоих сторон (но проще пускать пустой запрос).
  • Cobalt © (14.04.16 15:18) [4]
    поищи в параметрах компонент что-то типа keepalive
  • Rouse_ © (14.04.16 20:53) [5]
    Вовчь, ты там ничего не попутал?
  • имя (21.04.16 13:38) [6]
    Удалено модератором
  • имя (21.04.16 14:08) [7]
    Удалено модератором
  • имя (21.04.16 14:36) [8]
    Удалено модератором
 
Конференция "Сети" » Не могу справиться с ошибкой socket error #10054 connection reset
Есть новые Нет новых   [118638   +31][b:0][p:0]