Использую компонент TIdUDPClient для диалога с сетевым устройством по UDP в режиме "вопрос-ответ".
Ниже код простого сеанса связи:
clUDP.Send(Str);
Str := '';
repeat
BytesCount := clUDP.ReceiveBuffer(Buf);
if BytesCount > 0 then Str := Str + PChar(Buf);
until BytesCount = 0;
Устройство отвечает небыстро и возникает необычный момент: при установке низкого значения ReceiveTimeout ответ отсутствует в текущем сеансе связи, но приходит в следующем.
Подскажите, как можно бороться с таким поведением?