📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, UntUdpCtl;
type
TForm1 = class(TForm)
Memo2: TMemo;
Edit2: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
procedure OnCaseSvrData(ISender: TudpCtl; IData: Pointer; ISize: Cardinal;
IFromIP: string; IPort: integer);
{ Private declarations }
public
SvrUDPCtl: TudpCtl;
procedure OnError(Sender: TObject; IData: PSafeUdpData; IErrorKind: SHeadLv);
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses pmybasedebug, UntProctol;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
SvrUDPCtl := TudpCtl.Create(Self);
SvrUDPCtl.OnDataCase := OnCaseSvrData;
SvrUDPCtl.RemoteHost := '127.0.0.1';
SvrUDPCtl.RemotePort := 1002;
SvrUDPCtl.ServerPort := 1001;
SvrUDPCtl.OnDataError := OnError;
end;
procedure TForm1.OnCaseSvrData(ISender: TudpCtl; IData: Pointer; ISize:
Cardinal; IFromIP: string; IPort: integer);
var
Lp, LTep: PChar;
begin
with ISender do begin
case PInteger(IData)^ of //
1: begin
LTep := IData;
Edit2.Text := IntToStr(ISize);
Lp := GetMemory(ISize);
inc(LTep, Sizeof(rhead));
CopyMemory(Lp, LTep, ISize);
Memo2.Text := StrPas(Lp);
FreeMemory(Lp);
end;
end; // case
end; // with
end;
procedure TForm1.OnError(Sender: TObject; IData: PSafeUdpData; IErrorKind:
SHeadLv);
begin
Gob_Debug.AddLogShower('第%d-%d个包异常了 类型%d',
[Idata^.Head.PackedId, Idata^.Head.Part, ord(IErrorKind)]);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Gob_Debug.ShowDebugform;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -