//结构体
type
PRecTest = ^TRecTest;
TRecTest = record
ID: Integer;
Name:string[20];
end;//============================Server.pas=====================================
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
pRec: PRecTest;
Count: Integer;
iLen, iBytes: Integer;
begin
try
Count := SizeOf(TRecTest);
GetMem(pRec, Count);
iLen := Count;
while iLen > 0 do
begin
iBytes := Socket.ReceiveBuf(pRec^, iLen);
if iBytes < 0 then
begin
AddLog('Recv Error' + socket.RemoteAddress);
Socket.Close;
Break;
end;
iLen := iLen - iBytes;
end;
AddLog(pRec^.ID+#13#10+pRec^.Name);
finally
FreeMem(pRec);
end;
end;//============================Client.pas======================================
procedure TForm1.btnSendDataClick(Sender: TObject);
var
pRec: PRecTest;
Count: Integer;
begin
try
Count := SizeOf(TRecTest);
GetMem(pRec, Count);
pRec^.ID := StrToInt(edt1.Text);
pRec^.Name:='ABC123';
ClientSocket1.Socket.SendBuf(pRec, Count);
finally
FreeMem(pRec);
end;
end;测试结果如图所示。怎么FWQ接收数据不与客户端发的一致的?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货