TIdUDPClient и остаточные данные в буфере
От: Sartorius78  
Дата: 17.06.09 18:43
Оценка:
Использую компонент TIdUDPClient для диалога с сетевым устройством по UDP в режиме "вопрос-ответ".
Ниже код простого сеанса связи:
      clUDP.Send(Str);

      Str := '';
      repeat
        BytesCount := clUDP.ReceiveBuffer(Buf);
        if BytesCount > 0 then Str := Str + PChar(Buf);
      until BytesCount = 0;

Устройство отвечает небыстро и возникает необычный момент: при установке низкого значения ReceiveTimeout ответ отсутствует в текущем сеансе связи, но приходит в следующем.
Подскажите, как можно бороться с таким поведением?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.