Странности TCP

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Странности TCP

Сообщение Borjomy_1 »

Сделать реконект и выжидать N секунд?Опять получить ошибку таймаута и начать думать "А что же там могло произойти???".
Если у вас обрыв связи, то реконнект сделать не получится - будет ошибка 56. Точка. И думать, что там произошло, бесполезно. Это никак на ситуацию не повлияет, остается только пытаться делать реконнект через определенные промежутки времени. Канал пингования дублирует функционал, который обеспечивает корректная обработка ошибок основного канала.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Странности TCP

Сообщение Artem.spb »

Что-то вы разошлись, господа соратники :)
На стороне контроллера как раз сложностей нет: раз данные ценные, значит они должны быть в безопасности.
Пакеты отправляются раз в минуту.
После отправки очередного пакета контроллер ждёт от сервера подтверждения, если оно не пришло, соединение закрывается и данные записываются в файл. Если связи нет, данные продолжают писаться в файл. Как только связь появилась, пошли и онлайн данные, и история. Каждый пакет имеет метку времени, так что с их порядком следования проблем нет.

А вот на стороне сервера сложности. Начинают плодиться клоны.
Но в итоге сделал, как и советуете: контроллер раз в секунду напоминает, что он ещё живой. Теперь таймаут равносилен потере связи.
А т.к. защита данных на стороне контроллера уже реализована, то систему достаточно было допилить надфилем. Теперь всё работает нормально, при вытаскивании провода сервер тоже закрывает соединение и успокаивается.
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: Странности TCP

Сообщение Vitekkz88 »

Но в итоге сделал, как и советуете: контроллер раз в секунду напоминает, что он ещё живой. Теперь таймаут равносилен потере связи.
:super:
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»