📄 udichatproctol.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 + -