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

📄 udichatproctol.pas

📁 楠楠写的DBiocp例子都是源码
💻 PAS
字号:
unit uDIChatProctol;
 
interface

uses
  Windows;

const

//***********            聊天消息定义           *************/
  //服务器消息级别
  SM_CHAT_REGIST                  = 100;                 //用户注册
  SM_CHAT_LOGIN                   = 101;                 //用户登录
  SM_CHAT_LOGOUT                  = 102;                 //用户注销
  SM_CHAT_USERLIST                = 103;                 //用户列表

  //客户端消息
  CM_CHAT_REGIST                  = 200;                 //用户注册
  CM_CHAT_LOGIN                   = 201;                 //用户登录
  CM_CHAT_LOGOUT                  = 202;                 //用户注销
  CM_CHAT_USERLIST                = 203;                 //用户列表

  //服务器广播消息
  CM_CHAT_BROADCAST_USERLOGIN     = 301;                 //新用户登录
  CM_CHAT_BROADCAST_USERLOGOUT    = 302;                 //新用户注销


type
//***********           数据包(聊天)定义        *************/

//--------------------------【S端统一返回公共包】:-------------------------
// S->C
//【命令标志】:  根据情况 
//【数据结构】:  有
  PTDIPak_CHAT_SCResult = ^TDIPak_CHAT_SCResult;
  TDIPak_CHAT_SCResult  = Packed Record
    bState:       Byte;                   //是否成功  [0,1]
    bMsgLen:      DWord;                   //S端返回字串长度
    sMsgInfo:     PChar;                  //S端返回的提示[成功,失败信息]
  end;

//--------------------------【聊天注册包】:-------------------------
// C->S
//【认证】:      否
//【命令标志】:  SM_CHAT_REGIST 100
//【格式】:      包头 + 包体 + 聊天注册包(TDIPak_CHAT_CSRegist) + 包尾
//【数据结构】:  有
  PTDIPak_CHAT_CSRegist = ^TDIPak_CHAT_CSRegist;
  TDIPak_CHAT_CSRegist  = Packed Record
    sUserID:      array [0..15] of char;  //用户ID
    sUserName:    array [0..20] of char;  //用户名
    sUserPwd:     array [0..15] of char;  //密码
  end;

// S->C
//【命令标志】:  CM_CHAT_REGIST 200
//【格式】:      包头 + 包体 + 聊天注册包(TDIPak_CHAT_SCRegist) + 包尾
//【数据结构】:  有
  PTDIPak_CHAT_SCRegist = ^TDIPak_CHAT_SCRegist;
  TDIPak_CHAT_SCRegist  = Packed Record
    DIPak_CHAT_SCResult: TDIPak_CHAT_SCResult;
  end;

 
//--------------------------【聊天用户登录包】:-------------------------------
// C->S
//【认证】:      是
//【命令标志】:  SM_CHAT_LOGIN 101
//【格式】:      包头 + 包体 + 登录包(TDIPak_CHAT_CSLogin) + 包尾
//【数据结构】:  有
  PTDIPak_CHAT_CSLogin = ^TDIPak_CHAT_CSLogin;
  TDIPak_CHAT_CSLogin  = Packed Record
    sUserID:      array [0..15] of char;  //用户名
    sUserPwd:     array [0..15] of char;  //密码
  end;

// S->C
//【命令标志】:  CM_CHAT_LOGOUT 201
//【数据结构】:  有
//【格式】:      包头 + 包体 + 登录包(TDIPak_CHAT_SCLogin) + 包尾
//【结构】:      TDIPak_CHAT_SCResult
  PTDIPak_CHAT_SCLogin = ^TDIPak_CHAT_SCLogin;
  TDIPak_CHAT_SCLogin  = Packed Record
    DIPak_CHAT_SCResult: TDIPak_CHAT_SCResult;
  end;

// S->B  广播        
//【命令标志】:  CM_CHAT_BROADCAST_USERLOGIN 301
//【格式】:      包头 + 包体 + 登录包(TDIPak_CHAT_SBLogin) + 包尾
//【数据结构】:  有
  PTDIPak_CHAT_SBLogin = ^TDIPak_CHAT_SBLogin;
  TDIPak_CHAT_SBLogin  = Packed Record
    sUserID:      array [0..15] of char;  //用户ID
    sUserName:    array [0..20] of char;  //用户名
  end;

//--------------------------【聊天用户注销包】:-------------------------------
// C->S
//【认证】:      是
//【格式】:      包头 + 包体 + 注销包(TDIPak_CHAT_CSLogOut) + 包尾
//【命令标志】:  SM_CHAT_LOGOUT 102
//【数据结构】:  有
  PTDIPak_CHAT_CSLogOut = ^TDIPak_CHAT_CSLogOut;
  TDIPak_CHAT_CSLogOut  = Packed Record
    sUserID:      array [0..15] of char;  //用户名
    sUserPwd:     array [0..15] of char;  //密码
  end;

// S->C
//【命令标志】:  CM_CHAT_LOGOUT 202
//【格式】:      包头 + 包体 + 注销包(TDIPak_CHAT_SCLogOut) + 包尾
//【数据结构】:  有
  PTDIPak_CHAT_SCLogOut = ^TDIPak_CHAT_SCLogOut;
  TDIPak_CHAT_SCLogOut  = Packed Record
    DIPak_CHAT_SCResult: TDIPak_CHAT_SCResult;
  end;

// S->B  广播        
//【命令标志】:  CM_CHAT_BROADCAST_USERLOGOUT 302
//【格式】:      包头 + 包体 + 注销包(TDIPak_CHAT_SBLogOut) + 包尾
//【数据结构】:  有
  PTDIPak_CHAT_SBLogOut = ^TDIPak_CHAT_SBLogOut;
  TDIPak_CHAT_SBLogOut  = Packed Record
    sUserID:      array [0..15] of char;  //用户ID
    sUserName:    array [0..20] of char;  //用户名
  end;

//--------------------------【用户列表包】:-------------------------
// C->S
//【认证】:      是
//【格式】:      包头 + 包体 + 用户列表包(TDIPak_CHAT_CSUserList) + 包尾
//【命令标志】:  SM_CHAT_USERLIST 103
//【数据结构】:  有
  PTDIPak_CHAT_CSUserList = ^TDIPak_CHAT_CSUserList;
  TDIPak_CHAT_CSUserList = Packed Record
    sUserID:      array [0..15] of char;  //用户ID
  end;

// S->C
//【命令标志】:  CM_CHAT_USERLIST 203
//【格式】:      包头 + 包体 + 用户列表包(TDIPak_CHAT_SCUserList) + 包尾
//【数据结构】:  有
  PTDIPak_CHAT_SCUserList = ^TDIPak_CHAT_SCUserList;
  TDIPak_CHAT_SCUserList  = Packed Record
    DIPak_CHAT_SCResult: TDIPak_CHAT_SCResult;
  end;
  
//【成功后续包】:
//【格式】:      包头 + 包体 + 用户列表包(TDIPak_CHAT_SCUserList +TDIPak_CHAT_SCUserListEx) + 包尾
  PTDIPak_CHAT_SCUserListEx = ^TDIPak_CHAT_SCUserListEx;
  TDIPak_CHAT_SCUserListEx  = Packed Record
    bUserIDListLen:   DWord;  //用户ID长度
    sUserIDList:      Pchar;  //用户ID列表
    bUserNameListLen: DWord;  //用户名长度
    sUserNameList:    Pchar;  //用户名列表
  end;

const
  DL_CHAT_SCRESULT_LEN      = SizeOf(TDIPak_CHAT_SCResult);   //公共返回
  DL_CHAT_CSREGIST_LEN      = SizeOf(TDIPak_CHAT_CSRegist);   //C注册
  DL_CHAT_SCREGIST_LEN      = SizeOf(TDIPak_CHAT_SCRegist);   //S注册返回

  DL_CHAT_CSLOGIN_LEN       = SizeOf(TDIPak_CHAT_CSLogin);    //C登录
  DL_CHAT_SCLOGIN_LEN       = SizeOf(TDIPak_CHAT_SCLogin);    //S返回登录
  DL_CHAT_SBLOGIN_LEN       = SizeOf(TDIPak_CHAT_SBLogin);    //S广播登录

  DL_CHAT_CSLOGOUT_LEN      = SizeOf(TDIPak_CHAT_CSLogOut);   //C注销
  DL_CHAT_SCLOGOUT_LEN      = SizeOf(TDIPak_CHAT_SCLogOut);   //S返回注销
  DL_CHAT_SBLOGOUT_LEN      = SizeOf(TDIPak_CHAT_SBLogOut);   //S广播注销

  
  DL_CHAT_CSUSERLIST_LEN    = SizeOf(TDIPak_CHAT_CSUserList);   //C注销
  DL_CHAT_SCUSERLIST_LEN    = SizeOf(TDIPak_CHAT_SCUserList);   //S返回注销
  DL_CHAT_SCUSERLISTEX_LEN  = SizeOf(TDIPak_CHAT_SCUserListEx); //S广播注销


implementation

end.

⌨️ 快捷键说明

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