当我从目标接收数据时,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时有时会出现丢包?