"ГУП ДЕЗ района «Текстильщики» рекомендует привлечь ЗАО «Сервисная Компания «Тепловизор» для выполнения работ по сервисному обслуживанию узлов учета тепловой энергии на других объектах г. Москвы."
Н.Н. Елисеева, Главный инженер ГУП ДЕЗ «Текстильщики»
Добрый! 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