Hello, idontsov!
You wrote in conference rsdn.network on Thu, 18 Nov 2004 20:49:34 GMT:
i> Приложение периодически запрашивает сервер: отправляет udp пакет запроса
i> и ждет ответ. Ответ ожидается в течение определенного тайм-аута.
UDP — НЕНАДЕЖНЫЙ протокол. Поэтому он может:
a) терять датаграммы
б) менять их местами т.е. A2 может придти раньше A1 и тд.
i> Скажите, на сколько корректно для отсева таких опоздавших датаграмм
i> открывать/закрывать клиентский сокет на каждом витке цикла опроса?
Бесполезно. UDP сокет не имеет понятия "соединение".
Например, если твои датаграммы передаются "голубиной почтой" и
придут через полгода, ты их словишь и на новый сокет.
Единственное, что можно посоветовать, это в вставлять пакеты запросов и ответов "метку транзакции". То есть например в R1 (и соответственно в A1), метка будет "1", в R2 и A2 метка будет "2" и т.д.
Posted via RSDN NNTP Server 1.9 gamma
DEA>UDP — НЕНАДЕЖНЫЙ протокол. Поэтому он может:
DEA>б) менять их местами т.е. A2 может придти раньше A1 и тд.
ТЦП тоже такое умеет. Другое дело, что при сборке потока пакеты, не влезающие в окно, будут выброшены. Поэтому, кстати, приходится при мультироутинге пускать все ТЦП-соединение по одному маршруту. Иначе из-за неочередности прихода пакетов будет слишком большой оверхед по траффику. Это чисто админский взгляд на жизнь

Но программерам нужно его учитывать