"В соответствии с договоренностью сообщаю Вам, что длительная эксплуатация расходомеров ВИС.Т Вашего производства, установленных в доменном производстве ОАО «Северсталь» подтвердила высокие метрологические и надежностные характеристики Ваших приборов."
Добрый! 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