📄 cmppclient.pas
字号:
unit CMPPClient;
interface
uses
Windows, Messages, SysUtils, Classes, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient,SMSPUBLIC,SGIPTYPE,CMPPTYPE;
type
TCMPPClient = class(TIdTCPClient)
private
{ Private declarations }
FStream:TMemoryStream;
FBodyLenght:integer;
function ReadMsgHeader:TCMPPMsgHeader;
function Read_Connect:TCMPP_Connect;
function Read_Connect_Rep:TCMPP_Connect_REP;
function Read_Deliver:TCMPP_Deliver;
function Read_Deliver_REP:TCMPP_Deliver_Rep;
function Read_Query:TCMPP_Query;
function Read_Query_Rep:TCMPP_QUERY_REP;
FUNCTION Read_Submit:TCMPP_submit;
function Read_Submit_Rep:TCMPP_sUBMIT_REP;
procedure WriteMsgHeader(Header:TCMPPMsgHeader);
procedure Write_Connect(Msg:TCMPP_Connect);
procedure Write_Connect_Rep(Msg:TCMPP_Connect_REP);
procedure Write_Deliver(Msg:TCMPP_Deliver);
procedure Write_Deliver_REP(Msg:TCMPP_Deliver_Rep);
procedure Write_Query(Msg:TCMPP_Query);
procedure Write_Query_Rep(Msg:TCMPP_QUERY_REP);
procedure Write_Submit(Msg:TCMPP_submit);
procedure Write_Submit_Rep(Msg:TCMPP_sUBMIT_REP);
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('LK-SOFT', [TCMPPClient]);
end;
{ TCMPPClient }
function TCMPPClient.Read_Connect: TCMPP_Connect;
var
b:TCharArray;
begin
self.ReadBuffer(b,6);
b[6]:=#0;
Result.Source_Addr:=String(b);
self.ReadBuffer(b,16);
b[1]:=#0;
//Result.AuthenticatorSP:=b;
self.ReadBuffer(Result.Version,1);
self.ReadBuffer(Result.TimeStamp,2);
Result.TimeStamp:=Wordswap(Result.TimeStamp);
end;
function TCMPPClient.Read_Connect_Rep: TCMPP_Connect_REP;
var
b:TCharArray;
begin
self.ReadBuffer(Result.Status,1);
self.ReadBuffer(b,16);
b[16]:=#0;
Result.AuthenticatorISMG:=string(B);
self.ReadBuffer(Result.Version,1);
end;
function TCMPPClient.Read_Deliver: TCMPP_Deliver;
var
b:TCharArray;
begin
self.ReadBuffer(Result.Msg_Id,8);
Result.Msg_Id:=intSwap(Result.Msg_Id);
self.ReadBuffer(b,21);
b[21]:=#0;
Result.Destnation_id:=String(b);
self.ReadBuffer(b,10);
b[10]:=#0;
Result.Service_id:=String(b);
Self.ReadBuffer(Result.TP_pid,1);
Self.ReadBuffer(Result.TP_udhi,1);
Self.ReadBuffer(Result.Msg_Fmt,1);
self.ReadBuffer(b,21);
b[21]:=#0;
Result.Src_terminal_id:=string(b);
self.ReadBuffer(Result.Registered_Deliver,1);
self.ReadBuffer(Result.Msg_Length,1);
if Result.Registered_Deliver=0 then
self.ReadBuffer(Result.Msg_Content,Result.Msg_Length)
else begin
self.ReadBuffer(Result.Msg_Report.Msg_id,8);
result.Msg_Report.Msg_id:=int64swap(result.Msg_Report.Msg_id);
self.ReadBuffer(b,7);
b[7]:=#0;
result.Msg_Report.Submit_Time:=string(b);
self.ReadBuffer(b,10);
b[10]:=#0;
Result.Msg_Report.Done_Time:=string(b);
self.ReadBuffer(Result.Msg_Report.SMSC_Sequence,4);
Result.Msg_Report.SMSC_Sequence:=intswap(Result.Msg_Report.SMSC_Sequence);
end;
self.RemoveXBytesFromBuffer(8);
end;
function TCMPPClient.Read_Deliver_REP: TCMPP_Deliver_Rep;
var
b:TCharArray;
begin
self.ReadBuffer(result.Msg_id,8);
Result.Msg_id:=int64swap(Result.Msg_id);
self.ReadBuffer(result.Result,1);
end;
function TCMPPClient.Read_Query: TCMPP_Query;
begin
end;
function TCMPPClient.Read_Query_Rep: TCMPP_QUERY_REP;
begin
end;
function TCMPPClient.Read_Submit: TCMPP_submit;
begin
end;
function TCMPPClient.Read_Submit_Rep: TCMPP_sUBMIT_REP;
begin
end;
function TCMPPClient.ReadMsgHeader: TCMPPMsgHeader;
begin
Result.Total_Length:=intSwap(self.ReadCardinal(True));
Result.Command_ID:=intSwap(self.ReadCardinal(True));
Result.Sequence_ID:=intSwap(self.ReadCardinal(True));
end;
procedure TCMPPClient.Write_Connect(Msg: TCMPP_Connect);
begin
end;
procedure TCMPPClient.Write_Connect_Rep(Msg: TCMPP_Connect_REP);
begin
end;
procedure TCMPPClient.Write_Deliver(Msg: TCMPP_Deliver);
begin
end;
procedure TCMPPClient.Write_Deliver_REP(Msg: TCMPP_Deliver_Rep);
begin
end;
procedure TCMPPClient.Write_Query(Msg: TCMPP_Query);
begin
end;
procedure TCMPPClient.Write_Query_Rep(Msg: TCMPP_QUERY_REP);
begin
end;
procedure TCMPPClient.Write_Submit(Msg: TCMPP_submit);
begin
end;
procedure TCMPPClient.Write_Submit_Rep(Msg: TCMPP_sUBMIT_REP);
begin
end;
procedure TCMPPClient.WriteMsgHeader(Header: TCMPPMsgHeader);
begin
end;
constructor TCMPPClient.Create(AOwner: TComponent);
begin
inherited;
end;
destructor TCMPPClient.Destroy;
begin
inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -