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

📄 untproctol.pas

📁 一个有关Delphi 中 UDP协议的实列
💻 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 + -