如何知道TIdTCPServer接收数据是已经接收完毕?
我在 Execute 事件中结束数据,一个一个字节的接收,存在RecBuffer.Buffer中,如何判断缓冲区中的数据已经全部接收完毕呢?
代码如下:
procedure TfrmMainform.idServerExecute(AThread: TIdPeerThread);
var
buf : array [0..1] of BYTE;
begin
AThread.Connection.CheckForGracefulDisconnect(true);
if (not AThread.Terminated) and (AThread.Connection.Connected) then
begin
with AThread.Connection do
begin
ReadBuffer(buf,1);
if (RecBuffer.BufferLen + 1) < MAXBUFFERLEN then
RecBuffer.Buffer[RecBuffer.BufferLen] := Buf[0];
Inc(RecBuffer.BufferLen);
end;
end;
end;谢了!!!
我在 Execute 事件中结束数据,一个一个字节的接收,存在RecBuffer.Buffer中,如何判断缓冲区中的数据已经全部接收完毕呢?
代码如下:
procedure TfrmMainform.idServerExecute(AThread: TIdPeerThread);
var
buf : array [0..1] of BYTE;
begin
AThread.Connection.CheckForGracefulDisconnect(true);
if (not AThread.Terminated) and (AThread.Connection.Connected) then
begin
with AThread.Connection do
begin
ReadBuffer(buf,1);
if (RecBuffer.BufferLen + 1) < MAXBUFFERLEN then
RecBuffer.Buffer[RecBuffer.BufferLen] := Buf[0];
Inc(RecBuffer.BufferLen);
end;
end;
end;谢了!!!
还有其他得办法吗?
或预先指定大小http://lysoft.7u7.net