ターゲットからデータを受信すると、EG:
function TSlave.RecvInteger:integer;
var
p:pointer;
len, i, sent:integer;
begin
result := -1;
len := 4;
p := @result;
sent := 0;
repeat
Sleep(10);
i := Recv(Sk, p^, len, 0);
if i <= 0 then begin
Result := -1;
break;
end;
inc(sent, i);
dec(len, i);
p :=ptr(integer(@result) + sent);
until len = 0;
end;
完璧な結果を得るには、これを行う必要があります。recv を呼び出すと、パケットが失われることがあるのはなぜですか?