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

📄 testqqcommon.~pas

📁 序采用网上介绍的方法实现最基本的P2P方式通讯.模拟实现即时消息互发. 2.P2P通讯说明: 1).网关类型是在理想状态下.即非对称型NAT. 2).同在一个内网的两个CLIENT端通讯时,
💻 ~PAS
字号:
unit testQQCommon;

interface
//-------------------常量定义---------------------
Const  SERVER_PORT=9001;
       CLIENT_PORT=5001;
       IsFalse='0';
       IsTrue='1';

       LogonSign=1;             //注册信号
       HandSign=2;             //握手数据,用于保持会话连接,如网关的NAT端口
       FriendDataSign=3;       //好友资料
       LogoutSign=4;           //注销信号
       ChatMsgSign=5;          //聊天信息
       ChatMsgRecvedSign=6;    //收到聊天信息


//-------------------数据头定义---------------------
type  TTQQUDPHead=record
         MsgType:String[2];       {数据类型}
         DataSize:LONGWORD;
end;
//-------------------数据体定义---------------------
       {4.0 登录上线数据格式}
type  TLogonData=packed record
         Account:array [0..20] of Char;      {账号}
         MyPublicIP:array [0..20] of Char;   {IP}
         MyPublicPORT:array[0..5] of Char;   {PORT}
         lResult:array[0..1] of Char;        {验证结果:  1,成功;0,失败}
end;
       {4.1 登录下线数据格式}
type  TLogoutData=packed record
         Account:array [0..20] of Char;      {账号}
         lResult:array[0..1] of Char;        {验证结果:  1,成功;0,失败}
end;
type  THandData=packed record
         Account:array [0..20] of Char;      {账号}
         Mark:array[0..1] of Char;    {是否是上线信号}
         DesIP:array [0..20] of Char;   {IP}
         DesPORT:array[0..5] of Char;   {PORT}
         NeedReBack:Array[0..2] of Char;  {是否需要反馈}
end;
       {聊天消息数据格式}
type TChatData=packed record
        fromAccount:array [0..20] of Char;     {账号}
        toAccount:array [0..20] of Char;      {}
        Msg:array[0..499] of Char;    {消息内容}
        IsNeedReBack:array[0..1] of Char;  {是否需要接收成功反馈}
        IsReBackSigh:array[0..1] of Char;  {是否为反馈信息}
end;
//-------------------用户基本信息定义---------------------
type  TUserData=packed record
         Account:array [0..20] of Char;      {用户ID}
         IP:array[0..15] of Char;            {IP地址}
         PORT:array[0..6] of Char;
         IsFirstOne:array[0..2] of Char;     {是否为第一个,特殊处理}
end;

//-------------------整体结构定义格式包---------------------
         {(Package) 登录上线验证数据格式}
type  TLogonDataPackage=packed record
         Head:TTQQUDPHead;
         Body:TLogonData;
end;
type TLogoutDataPackage=packed record
         Head:TTQQUDPHead;
         Body:TLogoutData;
end;
        {握手[打洞]数据格式}
type  THandDataPackage=packed record
         Head:TTQQUDPHead;
         Body:THandData;
end;
         {好友信息数据}
type  TFriendDataPackage=packed record
         Head:TTQQUDPHead;
         Body:TUserData;
end;
        {聊天消息数据格式}
type TChatDataPackage=packed record
         Head:TTQQUDPHead;
         Body:TChatData;
end;
//-------------------在线信息---------------------
type   PServerUserBasicInfo=^TServerUserBasicInfo;
       TServerUserBasicInfo=class  //在线用户数据表
       UserData:TUserData;
       IsActive:Boolean;
end;

implementation

end.

⌨️ 快捷键说明

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