📄 ismgformunit.~pas
字号:
unit ISMGFormUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp;
type
TForm1 = class(TForm)
ISMGServerSocket: TServerSocket;
procedure FormCreate(Sender: TObject);
procedure ISMGServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ISMGServerSocket.Open;
end;
procedure TForm1.ISMGServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
sub:CMPP_Submit;
astr:String;
msgh:MsgHeader;
connect:CMPP_Connect;
connect_resp:CMPP_Connect_RESP;
sub_resp:CMPP_Submit_RESP;
deliver:CMPP_Deliver;
sub_statrep:CMPP_Submit_StatREP;
deliver_resp:CMPP_Deliver_RESP;
active_test_resp:CMPP_Active_Test_RESP;
total_length:Cardinal;
begin
showmessage('ReceiveLength='+IntToStr(Socket.ReceiveLength));
astr:=socket.ReceiveText;
//for msgh
msgh:=RecMsgHeader(Copy(astr,1,12));
total_length:=msgh.Total_Length;
case msgh.Command_Id of
Cmd_Connect:
begin
connect:=RecConnect(Copy(astr,13,total_length-12));
showmessage('CMPP_Connect!');
showmessage('test='+IntToStr(connect.Timestamp));
end;
Cmd_Connect_RESP:
begin
connect_resp:=RecConnectRESP(Copy(astr,13,total_length-12));
showmessage('CMPP_Connect_RESP!');
showmessage('test='+IntToStr(connect_resp.Version));
end;
Cmd_Submit:
begin
sub:=RecSubmit(Copy(astr,13,total_length-12));
showmessage('CMPP_Submit!');
showmessage('Msg_Content Length='+IntToStr(Length(sub.Msg_Content)));
showmessage(sub.Msg_Content);
end;
Cmd_Submit_RESP:
begin
sub_resp:=RecSubmitRESP(Copy(astr,13,total_length-12));
showmessage('CMPP_Submit_RESP!');
showmessage('Result='+IntToStr(sub_resp.Result));
end;
Cmd_Deliver:
begin
deliver:=RecDeliver(Copy(astr,13,total_length-12));
showmessage('CMPP_Deliver!');
if deliver.Registered_Delivery<>0 then
begin
sub_statrep:=RecSubmitStatREP(deliver.Msg_Content);
showmessage(sub_statrep.Dest_Terminal_Id);
end
else
showmessage(deliver.Msg_Content);
end;
Cmd_Deliver_RESP:
begin
deliver_resp:=RecDeliverRESP(Copy(astr,13,total_length-12));
showmessage('CMPP_Deliver_RESP!');
showmessage(IntToStr(deliver_resp.Result));
end;
Cmd_Active_Test_RESP:
begin
active_test_resp:=RecActiveTestRESP(Copy(astr,13,total_length-12));
showmessage('CMPP_Active_Test_RESP!');
showmessage(IntToStr(active_test_resp.Reserved));
end;
else
showmessage('Bad Command ID!');
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -