张无忌大侠,源码如下,帮我分析一下,谢谢!
客户端:
PUDPCommData = ^TUDPCommData;
TUDPCommData = record
...
end;
var
UDPCommData: TUDPCommData;
procedure TSPCommDataForm.edtSPCommBufferChange(Sender: TObject);
var
TmpStream: TMemoryStream;
begin
NMUDP1.ReportLevel:= Status_Basic;
NMUDP1.RemoteHost:= gStrServerIP;
NMUDP1.RemotePort:= StrToInt(gConsServerPort);
TmpStream:= TMemoryStream.Create;
try
TmpStream.Write(UDPCommData, SizeOf(UDPCommData));
NMUDPCommData.SendStream(TmpStream);
finally
TmpStream.Free;
end;
end;
服务端:
procedure TMainForm.NMUDPCommDataDataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
TmpStream: TMemoryStream;
I: Integer;
begin
TmpStream:= TMemoryStream.Create;
try
NMUDPCommData.ReadStream(TmpStream);
TmpStream.Read(UDPCommData, NumberBytes);
I:= StrToInt(UDPCommData.ClientID);
case I of
1:
begin
lblClient01.Caption:= UDPCommData.InLevel;
...
end;
2:
begin
lblClient02.Caption:= UDPCommData.InLevel;
...
end;
else
Exit;
end;
finally
TmpStream.Free;
end;
end;
本文分析了张无忌大侠在客户端使用UDP协议进行数据传输的过程,展示了TSPCommDataForm组件如何构造和发送数据,以及服务端TMainForm如何接收、解析和响应不同客户端ID的数据。涉及内存流操作和记录类型转换。
1855

被折叠的 条评论
为什么被折叠?



