📄 untproctol.pas
字号:
{*******************************************************}
{ 单元名: UntProctol.pas }
{ 创建日期:2006-1-8 23:54:32 }
{ 创建者 马敏钊 QQ 22900104 }
{ 功能: ptp协议单元 }
{ }
{*******************************************************}
unit UntProctol;
interface
uses sysUtils;
type
TUserName = string[21];
//------------------------------------------------------------------------------
// 命令头
//------------------------------------------------------------------------------
Phead = ^Rhead;
Rhead = packed record
Id: Integer; {命令号}
end;
//------------------------------------------------------------------------------
// 注册包
//------------------------------------------------------------------------------
PResgist = ^RResgist;
RResgist = packed record
Id: Rhead;
Name: string[20]; //用户名称
end;
//------------------------------------------------------------------------------
// 注册返回包
//------------------------------------------------------------------------------
PRspResgist = ^RRspResgist;
RRspResgist = packed record
Id: Rhead;
State: Byte; //1成功登陆 2已经登陆了
Name: TUserName; //返回用户的IP和端口号
UserId: Cardinal; //用户ID号
end;
//------------------------------------------------------------------------------
// 退出注册包
//------------------------------------------------------------------------------
PUnResgist = ^RUnResgist;
RUnResgist = packed record
Id: Rhead;
UserId: Cardinal;
end;
//------------------------------------------------------------------------------
// 广播的用户包
//------------------------------------------------------------------------------
PNewUser = ^RNewUser;
RNewUser = packed record
Id: Rhead;
Ip: string[15];
Port: Word;
Call: string[20];
UserId: Cardinal;
end;
//------------------------------------------------------------------------------
// 用户列表
//------------------------------------------------------------------------------
{ID Rhead
Count Word
Length word
Stream N/A}
//------------------------------------------------------------------------------
// 想要PTP
//------------------------------------------------------------------------------
PWantPTP = ^RWantPTP;
RWantPTP = packed record
ID: Rhead;
SourcrId, //发起
DestID: Cardinal; //目标
end;
//------------------------------------------------------------------------------
// 开门
//------------------------------------------------------------------------------
ROpenDoor = packed record
id: Rhead;
end;
//------------------------------------------------------------------------------
// 说Hello
//------------------------------------------------------------------------------
PSayHello = ^RSayHello;
RSayHello = packed record
Id: Rhead;
UserID: Cardinal;
end;
//------------------------------------------------------------------------------
// 请求文件列表
//------------------------------------------------------------------------------
PTakeFileList = ^RTakeFileList;
RTakeFileList = packed record
Id: Rhead;
UserID: Cardinal;
end;
//------------------------------------------------------------------------------
// 传输文件列表
//------------------------------------------------------------------------------
{ID Rhead
SourcesUserId:Cardinal;
Length Cardinal
Stream N/A}
//------------------------------------------------------------------------------
// 用户聊天
//------------------------------------------------------------------------------
{ID Rhead
SourcesUserId:Cardinal;
Length word
Stream N/A}
//------------------------------------------------------------------------------
// 心跳
//------------------------------------------------------------------------------
PLiving = ^RLiving;
RLiving = packed record
Id: Rhead;
SourcesUserId: Cardinal;
end;
const
CCTOCSRegist = 1; //用户注册
CCTOCSUnRegist = 2; //用户退出
CCTOCSWantPTP = 3; //用户想要与其它用户PTP
CCTOCSDoorOpened = 4; //告诉服务端这个用户的门已经打开
CSTOCCRegistRP = 1001; //返回注册
CSTOCCGiveUserlist = 1002; //给用户列表
CSTOCCSomeOneWantPTP = 1003; //给用户请求PTP命令
CSTOCCDonePTP = 1004; //通知客户端已经打开门了
CSTOALLNewUser = 2001; //广播有新用户加入
CSTOALLLeaveUser = 2002; //广播有用户离开
CCTOCCOpenDoor = 3001; //接到请求的用户给对方开门
CCTOCCSayHello = 3002; //发起握手的信息
CCTOCCTakeFileList = 3003; //请求文件列表
CCTOCCChat = 3004; //用户发送聊天消息
CCTOCCSayHelloResp = 4002; //对方回复握手信息
CCTOCCGiveFileList = 4003; //给对方回复文件列表
CCToAnyLifeing = 5001; //心跳包
AnyToAntLifeing = 5002; //心跳回复包
{共享文件夹名称}
CSharePlace = 'Share';
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -