亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.~pas

?? 短信收發程序
?? ~PAS
?? 第 1 頁 / 共 2 頁
字號:
//文件名稱:YiDong_Cmpp.pas
//文件標識:tYD_Cmpp類
//當前版本:1.0

unit main;

interface

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, ExtCtrls, ScktComp, md5, CMPP_Protocol, cmpp, winsock,
  Buttons;

type
    TFrmMain = class( TForm )
        Memo1: TMemo;
        Panel1: TPanel;
        Label1: TLabel;
        eIp: TEdit;
        Label4: TLabel;
        eSpid: TEdit;
        Label5: TLabel;
        eShaSec: TEdit;
        Panel2: TPanel;
    Label3: TLabel;
    eTel: TEdit;
    Label2: TLabel;
    BtnExit: TSpeedButton;
    bInit: TSpeedButton;
    bSubmit: TSpeedButton;
    bTerminate: TSpeedButton;
    Label6: TLabel;
    eSourceAdd: TEdit;
    Label7: TLabel;
    ePort: TEdit;
    eMsg: TMemo;
    ServerSocket: TServerSocket;
        procedure ClientSocket1Error( Sender: TObject; Socket: TCustomWinSocket;
            ErrorEvent: TErrorEvent; var ErrorCode: Integer );
        procedure bInitClick( Sender: TObject );
        procedure bSubmitClick( Sender: TObject );
        procedure bTerminateClick( Sender: TObject );
        procedure ClientSocket1Read( Sender: TObject; Socket: TCustomWinSocket );
    procedure BtnExitClick(Sender: TObject);
    procedure ServerSocketClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    private
        { Private declarations }
    public
        { Public declarations }
        Cmpp_Sequence_ID: integer;
        function Cmpp_lsh: integer;
        procedure bCmpp_Init( cSocket: TCustomWinSocket );
        //procedure bCmpp_Terminate( cSocket: TCustomWinSocket );
        procedure bCmpp_Submit( cSocket: TCustomWinSocket; cCMPP_SUBMIT: tCMPP_SUBMIT_tag );
        procedure bCmpp_Deliver( cSocket: TServerWinSocket; cCMPP_DELIVER_BODY : tCMPP_DELIVER_BODY_tag);
        procedure bCmpp_ActiveTest( cSocket: TCustomWinSocket );
        procedure CmppRead_CONNECT_RESP( ReadSock: TCustomWinSocket;
            Cmpp_Head: tCMPP_HEAD_tag );
        procedure CmppRead_CONNECT( ReadSock: TCustomWinSocket;
            Cmpp_Head: tCMPP_HEAD_tag );
        procedure CmppRead_TERMINATE(ReadSock: TCustomWinSocket;
          Cmpp_Head: tCMPP_HEAD_tag);
        procedure CmppRead_DELIVER(ReadSock: TCustomWinSocket;
            Cmpp_Head: tCMPP_HEAD_tag);
        procedure CmppRead_DELIVER_RESP(ReadSock: TCustomWinSocket;
          Cmpp_Head: tCMPP_HEAD_tag);
        procedure CmppRead_SUBMIT(ReadSock: TCustomWinSocket;
          Cmpp_Head: tCMPP_HEAD_tag);
        procedure CmppRead_SUBMIT_RESP(ReadSock: TCustomWinSocket;
          Cmpp_Head: tCMPP_HEAD_tag);

        procedure bSubmitSms();
        procedure bDeliverSms();
    end;

var
    FrmMain: TFrmMain;

implementation

{$R *.dfm}

procedure TFrmMain.ClientSocket1Error( Sender: TObject;
    Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
    var ErrorCode: Integer );
begin
    ErrorCode := 0;
end;

procedure TFrmMain.bInitClick( Sender: TObject );
begin
    bCmpp_Init( ServerSocket.Socket );
end;

procedure TFrmMain.bCmpp_Init( cSocket: TCustomWinSocket );
begin
    try
        ServerSocket.Active := False;
        ServerSocket.Port := strtoint(ePort.Text);
        ServerSocket.Active:=true;

{        timestr1:= now;
        while (now-timestr1)< 5/86400 do
        begin
            if ServerSocket.Active then break;
            application.ProcessMessages;
        end;
        if not ServerSocket.Active then
        begin
            memo1.Lines.Add( 'socket未打開' );
            exit;
        end;
    except
        on e: exception do
        begin
            memo1.Lines.Add( 'socket異常:' + e.Message );
            exit;
        end;
    end;
    try
        int1 := SizeOf( TCMPP_HEAD_tag );
        int2 := SizeOf( TCMPP_CONNECT_tag );
        int3 := int1 + int2;
        FillChar( bInit.head, int1, 0 );
        FillChar( bInit.body, int2, 0 );
        DateTimeToString( timestr, 'MMDDHHMMSS', now );
        StrPCopy( str1, trim( eSourceAdd.Text ) + '000000000' + trim( eShaSec.Text ) + timestr );
        LengthI := Length( trim( eSourceAdd.Text ) );
        for i := LengthI to ( LengthI + 8 ) do
            str1[i] := #0;
        Md5UpLen := LengthI + 9 + Length( trim( eShaSec.Text ) ) + 10;
        MD5Init( md5_con );
        MD5Update( md5_con, str1, Md5UpLen );
        MD5Final( md5_con, md5str );
        bInit.head.Total_Length := htonl( int3 );
        bInit.head.Command_ID := htonl( CMPP_CONNECT );
        bInit.head.Sequence_ID := htonl( Cmpp_lsh );
        StrPCopy( bInit.body.Source_Addr, eSourceAdd.text );
        move( md5str, bInit.body.AuthenticatorSource, 16 );
        bInit.body.Version := $20;
        bInit.body.Timestamp := htonl( StrToInt( timestr ) );
        if cSocket.SendBuf( bInit, int3 ) <> int3 then
        begin
            memo1.Lines.Add( '發送連接操作失敗' );
            exit;
        end;
}
        memo1.Lines.Add( '服務器開啟,正等待連接...' );
    except
        on e: exception do
            memo1.Lines.Add( '錯誤信息' + e.Message );
    end; //try-except
end;

function TFrmMain.Cmpp_lsh: integer;
begin
    Result := Cmpp_Sequence_ID;
    inc( Cmpp_Sequence_ID );
end;

procedure TFrmMain.bCmpp_ActiveTest( cSocket: TCustomWinSocket );
begin
    //
end;

//  ISGP向SP發送消息
procedure TFrmMain.bCmpp_Deliver( cSocket: TServerWinSocket; cCMPP_DELIVER_BODY : tCMPP_DELIVER_BODY_tag);
var
  Cmpp_Deliver_ItoS: TCmpp_Deliver_Itos;
  SizeIni1         : integer;
  i                : integer;
begin
  try
    SizeIni1 := Sizeof( Cmpp_Deliver_ItoS );
    FillChar( Cmpp_Deliver_ItoS , SizeIni1,0);
    Move( cCMPP_DELIVER_BODY,Cmpp_Deliver_ItoS.body,Sizeof( tCMPP_DELIVER_BODY_tag) );
    with Cmpp_Deliver_ItoS do
    begin
       head.Total_Length  := htonl( Sizeof( Cmpp_Deliver_ItoS ));
       head.Command_ID    := htonl( CMPP_DELIVER );
       head.Sequence_ID   := htonl( Cmpp_LSH );
    end;
    for i:=0 to cSocket.ActiveConnections-1 do
    if cSocket.Connections[i].SendBuf( Cmpp_Deliver_ItoS, SizeIni1) <> SizeIni1 then
    begin
        memo1.Lines.Add('發送Cmpp_Deliver_I2S包錯誤');
        exit;
    end;
    memo1.Lines.Add('發送Cmpp_Deliver_I2S包成功,正等待返回信息...');
  except
    On E : Exception Do memo1.Lines.Add( '發送Cmpp_Deliver_I2S包異常:' + e.Message );
  end;
end;

//  SP向ISGP發送消息
procedure TFrmMain.bCmpp_Submit( cSocket: TCustomWinSocket; cCMPP_SUBMIT: tCMPP_SUBMIT_tag );
var
    Cmpp_Submit_StoI: TCmpp_Submit_StoI;
    SizeIni1: integer;
begin
    try
        SizeIni1 := Sizeof( Cmpp_Submit_StoI );
        FillChar( Cmpp_Submit_StoI, SizeIni1, 0 );
        Move( cCMPP_SUBMIT, Cmpp_Submit_StoI.body, SizeOf( tCMPP_SUBMIT_tag ) );
        with Cmpp_Submit_StoI do
        begin
            head.Total_Length := htonl( SizeOf( Cmpp_Submit_StoI ) );
            head.Command_Id := htonl( CMPP_SUBMIT );
            head.Sequence_Id := htonl( Cmpp_LSH );
        end;
        if cSocket.SendBuf( Cmpp_Submit_StoI, SizeIni1 ) <> SizeIni1 then
        begin
            memo1.Lines.Add( '發送Cmpp_Submit_S2I包錯誤' );
            exit;
        end;
        if (memo1.Lines.Count > 1000 ) then
                memo1.Lines.Clear();
        memo1.Lines.Add( '發送Cmpp_Submit_S2I包成功,正等待返回信息...' );
    except
        on e: exception do
        begin
            memo1.Lines.Add( '發送Cmpp_Submit_S2I包異常:' + e.Message );
        end;
    end;
end;

// ISGP 向 SP發送短信
procedure TFrmMain.bDeliverSms();
var
  cCMPP_DELIVER_BODY : tCMPP_DELIVER_BODY_tag ;
begin
  try
     FillChar( cCMPP_DELIVER_BODY,SizeOf( cCMPP_DELIVER_BODY),0);
     with cCMPP_DELIVER_BODY do
     begin
        Head.Msg_Id := Cmpp_LSH();
        strpcopy(Head.Dest_Id,eTel.Text);
        strpcopy(Head.Service_Id,'ISMG');
        Head.TP_pid := 0;
        Head.TP_udhi := 0;
        Head.Msg_Fmt := 8;
        strpcopy(Head.Src_terminal_Id,eSourceAdd.Text);
        Head.Registered_Delivery := 0;
        Head.Msg_Length := 140;
        strpcopy(Body.Msg_Content,eMsg.Text);
     end;
     bCmpp_Deliver( ServerSocket.Socket, cCMPP_DELIVER_BODY );
  except
     On E: Exception Do memo1.Lines.Add( 'ISGP下發短信,異常:' + e.Message );
  end;
end;

// SP向ISGP發送短信
procedure TFrmMain.bSubmitSms();
var
    CMPP_SUBMIT_tag: TCMPP_SUBMIT_tag;
begin
    FillChar( CMPP_SUBMIT_tag, SizeOf( CMPP_SUBMIT_tag ), 0 );
    with CMPP_SUBMIT_tag do
    begin
        Pk_total := 1;
        Pk_number := 1;
        Registered_Delivery := 0;
        Msg_level := 0;
        strpcopy( Service_Id, 'SP' );
        Fee_UserType := 0;
        strpcopy( Fee_terminal_Id, '' ); //:array[0..20] of char;  //被計費用戶的號碼(如本字節填空,則表示本字段無效,對誰計費參見Fee_Userstruct字段,本字段與Fee_Userstruct字段互斥)
        TP_pId := 0; //byte;//GSM協議類型。詳細是解釋請參考GSM03.40中的9.2.3.9
        TP_udhi := 0; //byte;//GSM協議類型。詳細是解釋請參考GSM03.40中的9.2.3.23,僅使用1位,右對齊
        Msg_Fmt := 8; //byte;//信息格式  0:ASCII串  3:短信寫卡操作  4:二進制信息  8:UCS2編碼15:含GB漢字
        strpcopy( Msg_src, eSpid.Text ); //array[0..5] of char;   //信息內容來源(SP_Id)
        strpcopy( FeeType, '01' ); //:array[0..1] of char;   //資費類別01:對"計費用戶號碼"免費
        strpcopy( FeeCode, '00010' ); //:array[0..5] of char;   //資費代碼(以分為單位)
        strpcopy( ValId_Time, '' ); //:array[0..16] of char;  //存活有效期,格式遵循SMPP3.3協議
        strpcopy( At_Time, '' ); //:array[0..16] of char;  //定時發送時間,格式遵循SMPP3.3協議
        strpcopy( Src_Id, eSourceAdd.Text ); //:array[0..20] of char;  //源號碼SP的服務代碼或前綴為服務代碼的長號碼, 網關將該號碼完整的填到SMPP協議Submit_SM消息相應的source_addr字段,該號碼最終在用戶手機上顯示為短消息的主叫號碼
        DestUsr_tl := 1; //byte;//接收信息的用戶數量(小于100個用戶)
        strpcopy( Dest_terminal_Id, eTel.Text ); //:array[0..20] of char;  //接收短信的MSISDN號碼
        Msg_Length := 140; //byte;//信息長度(Msg_Fmt值為0時:<160個字節;其它<=140個字節)
        strpcopy( Msg_Content, eMsg.Text ); //:array[0..MSG_LENGTH-1] of char; //信息內容
        //Reserve             :array[0..7] of char;//保留
    end;
    bCmpp_Submit( ServerSocket.Socket, CMPP_SUBMIT_tag );
end;


procedure TFrmMain.bSubmitClick( Sender: TObject );
begin
  try
     bDeliverSms();
  except
    On E : Exception Do  memo1.Lines.Add( 'ISMG下發短信,異常:' + e.Message );
  end;
end;

procedure TFrmMain.bTerminateClick( Sender: TObject );
begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩激情av在线| 国产一区二区三区视频在线播放| 久久精品久久久精品美女| 成人激情小说网站| 日韩精品一区二区三区swag | 免费观看在线综合色| 99久久综合99久久综合网站| 精品国产髙清在线看国产毛片| 一级做a爱片久久| 成人国产精品免费观看视频| 日韩欧美国产麻豆| 日韩精品一级中文字幕精品视频免费观看 | 国产日韩欧美一区二区三区综合| 一区二区三区日本| 国产1区2区3区精品美女| 日韩欧美国产高清| 日韩激情av在线| 欧美另类高清zo欧美| 日韩理论片在线| 成人黄色777网| 国产人久久人人人人爽| 韩日av一区二区| 日韩欧美一区电影| 蜜桃视频一区二区三区| 制服丝袜日韩国产| 日日夜夜免费精品| 欧美日本一道本| 一级特黄大欧美久久久| 色妞www精品视频| 伊人色综合久久天天| 91视频在线看| 一区二区三区在线观看国产| 色哟哟精品一区| 一区二区三区四区激情| 欧美亚洲一区三区| 无码av免费一区二区三区试看| 欧美日韩不卡在线| 日韩福利电影在线| 精品免费视频一区二区| 韩国av一区二区三区四区| 久久久久久久性| 成人免费毛片嘿嘿连载视频| 国产精品欧美一区二区三区| 91蜜桃在线观看| 午夜精品久久一牛影视| 日韩精品一区二区三区在线| 国产成人亚洲综合色影视| 国产精品私房写真福利视频| 91丨九色丨尤物| 香蕉成人啪国产精品视频综合网| 日韩一区二区三区电影 | 国产欧美日韩麻豆91| 99国产精品久久久久久久久久| 一区二区成人在线| 精品国产免费人成在线观看| 国产福利一区二区三区视频| 亚洲人成精品久久久久久| 欧美日韩高清一区二区三区| 久久草av在线| 亚洲欧美激情插| 91精品在线观看入口| 丁香激情综合五月| 亚洲第一搞黄网站| 久久综合成人精品亚洲另类欧美| 99精品视频在线观看| 日韩av高清在线观看| 国产日韩欧美不卡在线| 欧美少妇一区二区| 国产成人一区在线| 日韩电影在线一区二区| 欧美激情一区三区| 欧美一区在线视频| 99久久er热在这里只有精品66| 日本欧美在线观看| 最新不卡av在线| 26uuu国产在线精品一区二区| 91婷婷韩国欧美一区二区| 青青草91视频| 一区二区三区精品在线| 久久天堂av综合合色蜜桃网| 欧美揉bbbbb揉bbbbb| 不卡一卡二卡三乱码免费网站| 日韩成人dvd| 亚洲美女视频在线观看| 国产视频一区在线播放| 欧美精品欧美精品系列| 91在线看国产| 国产成人精品一区二区三区四区 | 精品国产一区二区国模嫣然| 欧洲一区二区av| 9i在线看片成人免费| 激情综合色播激情啊| 日韩精品亚洲一区二区三区免费| 亚洲人成在线观看一区二区| 欧美高清在线精品一区| 久久伊人蜜桃av一区二区| 91精品国产91久久久久久最新毛片| 亚洲成人tv网| 欧美视频在线观看一区二区| 成人精品国产一区二区4080| 九九视频精品免费| 亚洲精品一二三| 欧美日韩亚洲丝袜制服| 91精彩视频在线观看| 久久久精品蜜桃| 色狠狠桃花综合| 国内精品嫩模私拍在线| 亚洲精品视频在线观看免费 | 欧美亚洲一区三区| 国产一区二区三区四区五区美女| 久久久精品中文字幕麻豆发布| 精品国产伦一区二区三区观看体验| 国产精品对白交换视频| 亚洲欧美视频在线观看视频| 亚洲福利一区二区| 欧美精品一区二区三区在线 | 狠狠色丁香久久婷婷综合丁香| 欧美一区二区三区男人的天堂| 亚洲永久精品国产| 国产欧美精品区一区二区三区| 亚洲综合色自拍一区| 日本一区二区成人| 精品人伦一区二区色婷婷| 久久在线免费观看| 日韩精品一级二级| 欧美一区二区精品| 99久久国产综合精品色伊| 日韩午夜激情视频| 久久99精品国产麻豆婷婷| 国产精品久久久久影院色老大| 日韩一区二区精品葵司在线| 欧美日韩精品一区视频| 国产成人亚洲综合色影视| 欧美自拍丝袜亚洲| 91免费视频网址| 欧美日韩精品欧美日韩精品| 亚洲精品免费一二三区| 日韩你懂的在线播放| 成人午夜又粗又硬又大| 国产精品萝li| 亚洲精品一区二区三区在线观看| 337p日本欧洲亚洲大胆精品 | 一区二区不卡在线视频 午夜欧美不卡在| 欧美浪妇xxxx高跟鞋交| 欧美一卡二卡在线观看| 91麻豆产精品久久久久久| 欧美高清精品3d| 欧美成人免费网站| 国产欧美日本一区视频| 欧美大肚乱孕交hd孕妇| 日日摸夜夜添夜夜添国产精品| 欧美一区日韩一区| 久久人人爽爽爽人久久久| 极品少妇xxxx精品少妇| 欧美精品v国产精品v日韩精品| 国产精品99久久久久久有的能看| 9i在线看片成人免费| 欧美精品一区二区精品网| 亚洲免费在线电影| 久久影院午夜片一区| 精品国免费一区二区三区| 99re66热这里只有精品3直播| 欧美一区二区三级| 精品美女被调教视频大全网站| 懂色av一区二区在线播放| 久久精品国产网站| 日韩视频不卡中文| 成人三级在线视频| 日本久久电影网| 国产成人在线色| 午夜精品久久一牛影视| 午夜国产精品影院在线观看| 欧美激情一区二区三区不卡| ㊣最新国产の精品bt伙计久久| 成人免费视频免费观看| 亚洲一区在线视频观看| 日韩欧美高清一区| 色94色欧美sute亚洲线路二 | 亚洲日本va在线观看| 国产91精品露脸国语对白| 亚洲国产精品成人综合色在线婷婷| 日韩一区二区在线观看视频| 久久看人人爽人人| 亚洲国产精品一区二区久久 | 国产精品你懂的| 国产一区二区美女| 精品影院一区二区久久久| 精品一区二区三区香蕉蜜桃| 久久精品国产秦先生| 日韩成人一级大片| 欧美视频自拍偷拍| 国产不卡免费视频| 欧美日免费三级在线| 亚洲精品视频自拍| 久久99国产精品麻豆| 久久久久久久久久久99999| 国产精品1区二区.| 国产在线一区观看| 欧美伊人精品成人久久综合97| 国产精品麻豆视频|