1,593
社区成员
发帖
与我相关
我的任务
分享
var
strStream: TStringStream;
strSize: Integer;
begin
strStream := TStringStream.Create('some strings');
try
strSize := strStream.Size;
TcpClient1.SendBuf(strSize,sizeof(strSize),0);//记得处理返回值
strStream.Position := 0;
TcpClient1.SendStream(strStream);//记得处理返回值
finally
strStream.free;
end;
end;
var
memStream: TMemoryStream;
strSize: Integer;
iRecved: Integer;
p: pchar;
begin
memStream := TMemoryStream.Create('');
try
strSize := 0;
iRecved := TcpClient1.ReceiveBuf(strSize,sizeof(strSize));
if iRecved <= 0 then raise Exception.Create('出错了');
if iRecved <> sizeof(strSize) then Raise Exception.Create('接收数据长度不正确!');
memStream.Size := strSize;
memStream.Position := 0;
p := memStream.Memory;
while strSize > 0 do
begin
iRecved := TcpClient1.ReceiveBuf(p^,strSize);
if iRecved <= 0 then raise Exception.Create('接收数据出错');
inc(p,iRecved);
dec(strSize,iRecved);
end;
ShowMessage('接收完毕!');
finally
memStream.Free;
end;
end;