张无忌大侠,源码如下,帮我分析一下,谢谢!
客户端:
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;