НПО Тепловизор. Теплосчетчики и расходомеры К вершинам эволюции теплосчетчика
Продукция Поддержка Форум Контакты
     
Пользователь    Пароль  
Регистрация | Пароль?  
Главное меню
НовостиПродукцияФайлы/ДокументыСтатьиФорумОпросыФотогалереяО компанииРекламодателям
Потребители о нас
"ГУП ДЕЗ района «Текстильщики» рекомендует привлечь ЗАО «Сервисная Компания «Тепловизор» для выполнения работ по сервисному обслуживанию узлов учета тепловой энергии на других объектах г. Москвы."

Н.Н. Елисеева, Главный инженер ГУП ДЕЗ «Текстильщики»
Наши партнёры
Свернуть/Развернуть ТЕПЛОСЧЕТЧИКИ • ВОДОСЧЕТЧИКИ • РАСХОДОМЕРЫ • ВИС.Т Свернуть/Развернуть
/  Список форумов
   /  Программное обеспечение
/  Hydralink.dll и разрыв сети
«  Предыдущая тема    Следующая тема  »
Тема:  Hydralink.dll и разрыв сети    

Sashka Hydralink.dll и разрыв сети

Новенький


Добрый!
hydralink.dll 2010.2.0.2
Читаем архив по TCP/IP
...
connect.commdev := HL_CONNTYPE_TCP;
connect.netno := 255;
connect.baud := 9600;
connect.ip := $C0A8FE46;
connect.tcpport := 5000;
req.cmask := HL_CONTOUR_1 or HL_CONTOUR_2 or HL_CONTOUR_3;
req.infokind := HL_INFOKIND_RECORD;
req.pfunc := nil;
bErr := HLINK_Read(@connect, @req,ReadRes,-35);
...
Если в момент начала работы HLINK_Read (причем не сразу) отключить преобразователь интерфейса Ethernet-RS-232 из сети, т.е. изобразить разрыв сети, то выход из функции HLINK_Read вообще не происходит (или занимает более 40 минут)
При этом если разорвать соединение почти сразу после вызова HLINK_Read, то секунд через 10 произойдет выход из функции с ошибкой "Не возможно прочитать арх запись" или "Не могу переключить системы".

P.S. если сеть не рвать - все успешно считывается.
» 2.8.12 18:31 Профайл

CH Re: Hydralink.dll и разрыв сети

Администратор


Добрый, добрый...

Так, а в чём вопрос? Попробую догадаться: "почему так происходит?". Использованы блокирующиеся сокеты (кроме начального установления соединения). Через какой промежуток времени после обрыва произойдёт выход из вызванной сетевой функции известно только операционной системе.

--
Виктор В. Жданов
NegaSoft Co. FAE
НПО "Тепловизор", Главный инженер-программист
» 2.8.12 19:08 Профайл Посетить веб-сайт

Sashka Re: Hydralink.dll и разрыв сети

Новенький


))) так писал - так писал, что даже про вопрос то и забыл.

Вопрос:
Как рекомендуете обрабатывать ситуацию обрыва сети в приложении, чтобы оно не висело Hlink_read, раз в библиотеке реализованы блокирующие сокеты без таймаута?
» 3.8.12 08:52 Профайл

CH Re: Hydralink.dll и разрыв сети

Администратор


Затрудняюсь дать красивую рекомендацию. Ситуация по сути неразрешимая. Проще всего, как мне кажется, переписать библиотеку на неблокирующиеся сокеты - пара часов времени + тестирование. Только сейчас я ухожу в отпуск до сентября...

--
Виктор В. Жданов
NegaSoft Co. FAE
НПО "Тепловизор", Главный инженер-программист
» 3.8.12 12:53 Профайл Посетить веб-сайт

Sashka Re: Hydralink.dll и разрыв сети

Новенький


Ну тогда хорошо отдохнуть
И ждем обновления библиотеки

PS. А вообщем можно просто добавить таймаут в блокирующем чтении. Чтобы не переписывать полностью.
» 3.8.12 13:06 Профайл
Распечатать топик 
«  Предыдущая тема    Следующая тема  »


Поиск

Ключевые слова:    
[ Расширенный поиск ]

Права

Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.