"МУП «Люберецкая теплосеть» использует теплосчетчики ВИС.Т с 1997 года. Теплосчетчики устанавливались как на собственных объектах теплоснабжения, так и у потребителей. За время эксплуатации данных приборов теплосчетчики ВИС.Т были выбраны нашей организацией как основной теплосчетчик для установки на жилом фонде г. Люберцы и настоятельно рекомендован для других объектов теплоснабжения. На базе теплосчетчиков ВИС.Т и программного комплекса Архивист в г. Люберцы была создана системе диспетчеризации МУП «Люберецкой теплосети» для контроля параметров теплопотребления стороннего тепла от ОАО Мосэнерго, ОАО Любэнергоснаб, МОЭК, что позволило отрегулировать внутренние сети и снизить затраты на теплопотребление."
Добрый! 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. если сеть не рвать - все успешно считывается.
Так, а в чём вопрос? Попробую догадаться: "почему так происходит?". Использованы блокирующиеся сокеты (кроме начального установления соединения). Через какой промежуток времени после обрыва произойдёт выход из вызванной сетевой функции известно только операционной системе.
-- Виктор В. Жданов NegaSoft Co. FAE НПО "Тепловизор", Главный инженер-программист
))) так писал - так писал, что даже про вопрос то и забыл.
Вопрос: Как рекомендуете обрабатывать ситуацию обрыва сети в приложении, чтобы оно не висело Hlink_read, раз в библиотеке реализованы блокирующие сокеты без таймаута?
Затрудняюсь дать красивую рекомендацию. Ситуация по сути неразрешимая. Проще всего, как мне кажется, переписать библиотеку на неблокирующиеся сокеты - пара часов времени + тестирование. Только сейчас я ухожу в отпуск до сентября...
-- Виктор В. Жданов NegaSoft Co. FAE НПО "Тепловизор", Главный инженер-программист
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.
НПО «Тепловизор», Москва, Рязанский проспект, 8а тел/факс: +7(495)730-47-44, +7(495)127-28-44