⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.h

📁 能模拟SGIP的网关模拟
💻 H
字号:
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ScktComp.hpp>
#include <ComCtrls.hpp>
#include <Menus.hpp>
#include <ExtCtrls.hpp>
#include <ImgList.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TServerSocket *ServerSocket1;
        TStatusBar *StatusBar1;
        TMainMenu *MainMenu1;
        TMenuItem *Connect1;
        TClientSocket *ClientSocket1;
        TMenuItem *Connect2;
        TMenuItem *Exit1;
    TPanel *Panel1;
    TPanel *Panel2;
    TMemo *Memo1;
    TLabel *Label1;
    TLabel *Label2;
    TLabel *Label3;
    TLabel *Label4;
    TButton *Button1;
    TComboBox *ComboBox1;
    TButton *Button2;
    TEdit *Edit1;
    TEdit *Edit2;
    TButton *Button3;
    TPanel *Panel3;
    TListView *ListView1;
    TButton *Button5;
    TImageList *ImageList1;
        void __fastcall ServerSocket1ClientRead(TObject *Sender,
          TCustomWinSocket *Socket);

          void __fastcall Bind_Resp();
          void __fastcall Submit_Resp();
          void __fastcall UnBind_Resp();
          void __fastcall Deliver();
                    
        void __fastcall ServerSocket1ClientConnect(TObject *Sender,
          TCustomWinSocket *Socket);
        void __fastcall Connect1Click(TObject *Sender);
        void __fastcall ClientSocket1Connect(TObject *Sender,
          TCustomWinSocket *Socket);
        void __fastcall Exit1Click(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall ClientSocket1Error(TObject *Sender,
          TCustomWinSocket *Socket, TErrorEvent ErrorEvent,
          int &ErrorCode);
    void __fastcall Button2Click(TObject *Sender);
    void __fastcall Button3Click(TObject *Sender);
    void __fastcall ClientSocket1Read(TObject *Sender,
          TCustomWinSocket *Socket);
    void __fastcall Button5Click(TObject *Sender);
          
private:
    bind();	// User declarations
public:		// User declarations

            int sequence;
            int counter;
            String Server;

        __fastcall TForm1(TComponent* Owner);
        //void set_recv_head(_SGIP_HEAD *head);
        void recv(AnsiString data);
        int alternate(int input);
        void swap(char * a, char * b);
        void head(int command_type,int length);
        void additem(int id, int command, AnsiString content, int index);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------

#define SGIP_BIND	0x1
#define SGIP_BIND_RESP	0x80000001
#define SGIP_UNBIND	0x2
#define SGIP_UNBIND_RESP	0x80000002
#define SGIP_SUBMIT	0x3
#define SGIP_SUBMIT_RESP	0x80000003
#define SGIP_DELIVER	0x4
#define SGIP_DELIVER_RESP	0x80000004

#define INT_MAX 10000


typedef struct
{
    int Message_Length;             //消息的总长度(字节)
    int Command_ID;                 //命令ID
    int Sequence_Number[3];         //序列号;此处为12个字节
}_SGIP_HEAD;

typedef struct
{
    unsigned char Login_Type;         //一个字节整型,登录类型;
                                      //1:SP向SMG建立的连接,用于发送命令
                                      //2:SMG向SP建立的连接,用于发送命令
    char Login_Name[16];              //服务器端给客户端分配的登录名
    char Login_Password[16];          //服务器端和Login Name对应的密码
    char Reserve[8];                  //保留,扩展用
}_SGIP_BIND;

typedef struct
{
    unsigned char Result;             //Bind执行命令是否成功。0:执行成功其它:错误码
    char Reserve[8];                  //保留,扩展用
}_SGIP_BIND_RESP;

typedef struct
{
    //无消息体
}_SGIP_UNBIND;
typedef struct
{
    //无消息体
}_SGIP_UNBIND_RESP;

typedef struct                        //长度为9
{
    unsigned char Result;             //Submit命令是否成功接收。0:接收成功其它:错误码
    char Reserve[8];                  //保留,扩展用
}_SGIP_SUBMIT_RESP;

typedef struct                        //
{
    char UserNumber[21];              //发送短消息的用户手机号,手机号码前加"86"国别标志
    char SPNumber[21];                //SP的接入号码
    unsigned char TP_pid;             //GSM协议类型。详细解释请参考GSM03.40中的9.2.3.9
    unsigned char TP_udhi;            //GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐
    unsigned char MessageCoding;      //短消息的编码格式。0:纯ASCII字符串3:写卡操作4:
                                      //二进制编码8:UCS2编码15: GBK编码其它参见GSM3.38第4节:SMS Data Coding Scheme
    int MessageLength;                //短消息的长度
    AnsiString MessageContent;        //长度是短消息的内容的长度
    char Reserve[8];                  //保留,扩展用
}_SGIP_DELIVER;

typedef struct
{
    unsigned char Result;             //Deliver命令是否成功接收。0:接收成功其它:错误码
    char Reserve[8];                  //保留,扩展用
}_SGIP_DELIVER_RESP;


_SGIP_HEAD sgip_head,r_Message_Head;
_SGIP_BIND sgip_bind;
_SGIP_BIND_RESP sgip_bind_resp;
_SGIP_SUBMIT_RESP sgip_submit_resp;
_SGIP_DELIVER sgip_deliver;


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -