[Comm] серьёзная проблема с UDP сокетами

Gleb Kulikov =?iso-8859-1?q?gleb_=CE=C1_asd=2Eiao=2Eru?=
Сб Мар 6 11:31:27 MSK 2004


Джентельмены!

Необжиданная проблема (Master 2.2 + updates):

есть некий прибор, отвечает которкими дэйтаграммами (256 байт) по 2 портам, 77 
и 57. После отправки любого пакета в *57 порт прибора*, он отвечает 256 
байтами данных по *57 порту в наш адрес*.

Пишем простенькую программу, биндимся на нашIP:57 и получаем с него данные.
Через непредсказуемый интервал времени (может прибежать от 0 до N :) пакетов 
(а их довольно много, до 2048 пакетов с интервалом порядка нескольких мс 
между пакетами), readfrom возвращает Resource temporarily unavailable. И всё. 
исправляет ситуацию только  перезагрузка программы, а через некоторое время 
-- только перезагрузка *СИСТЕМЫ*.

Сокеты выделяются только один раз, не закрываются. Впрочем, если их каждый раз 
уничтожать/создавать, поведение не меняется. Переполнение буферов также 
сомнительно, так как пакеты идут по нашей инициативе (я пишу 1 байтовый пакет 
в remoteIP:57, только после чего слушаю мойIP:57::remoteIP:57).

Аналогичная программа под OS/2 и Windows, работает без всяких проблем сутками. 

Это известные грабли? Куда смотреть / что подкрутить?

-- 
			Салют, /GLeb



Подробная информация о списке рассылки community