文章目录

  • 1)报文结构
    • (1)包体大小-》用于确认报文的完整性
    • (2)会话ID-》用于识别客户端的唯一性
    • (3)序号-》用于保证报文的顺序
    • (4)模块ID-》把报文传递给对应模块/程序
    • (5)发送时间/时间戳-》用于判断是否超时
    • (6)协议类型-》区分协议的细节(比如101要登录,102要注册)
    • (7)协议ID-》用于区分业务
    • (8)协议内容-》记录业务数据
  • 2)提供组装请求报文实体的接口
  • 3)提供组装ACK报文实体的接口
  • 4)提供解码的接口
    • (1)通过该接口获取到包体大小、会话ID、序号、。。。
    • (2)也就是将收到的消息转化为报文实体

1)报文结构

(1)包体大小-》用于确认报文的完整性

(2)会话ID-》用于识别客户端的唯一性

(3)序号-》用于保证报文的顺序

(4)模块ID-》把报文传递给对应模块/程序

(5)发送时间/时间戳-》用于判断是否超时

(6)协议类型-》区分协议的细节(比如101要登录,102要注册)

(7)协议ID-》用于区分业务

(8)协议内容-》记录业务数据

2)提供组装请求报文实体的接口

3)提供组装ACK报文实体的接口

4)提供解码的接口

(1)通过该接口获取到包体大小、会话ID、序号、。。。

(2)也就是将收到的消息转化为报文实体

using System.Net;                      //用了public IPEndPoint endPoint;要加
using System.Collections;
using System.Collections.Generic;
using UnityEngine;//先建立命名空间
namespace Game.Net
{public class BufferEntity{public int recurCount = 0;     //记录重发次数,工程内部用到(记录网络拥塞),并非业务数据public IPEndPoint endPoint;    //发送的目标终端,里面记录了IP和端口public int protoSize;          //协议大小,用于确认报文的完整性public int session;            //会话ID,用于识别客户端的唯一性public int sn;                 //序号,用于保证报文的顺序public int moduleID;           //模块ID,把报文传递给对应模块/程序public long time;              //发送时间,用于判断是否超时public int messageType;        //协议类型,区分协议的细节(比如101要登录,102要注册)public int messageID;          //协议ID,用于区分业务public byte[] proto;           //业务报文,记录业务数据//需要一个字段全部组装成一个byte数组,作为发送的字段public byte[] buffer;          //最终要发送的数据 或者是  收到的数据//创建一个请求报文的接口,用构造函数//第一个参数是我们要发送的终端,第二个参数是会话ID,第三个参数是序号,以此类推public BufferEntity(IPEndPoint endPoint,int session,int sn,int moduleID,int messageType,int messageID,byte[] proto){protoSize = proto.Length;this.endPoint = endPoint;this.session = session;this.sn = sn;this.moduleID = moduleID;this.messageType = messageType;this.proto = proto;}//编码的接口,把这些成员组装成要发送的数据,也就是 byte[]}
}

Moba项目开发(一)打造网络通信系统-任务3:03.定制通信报文的格式相关推荐

  1. iOS项目开发实战——iOS网络编程获取网页Html源代码

    如今我们身处互联网的时代,任何一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比较low,这里我们将会开始使用Swift开发iOS应用,并且主要来实现 ...

  2. Typescript助力项目开发:JS切换TS、TS类型定制与思考

    TS已经成为可以帮助项目顺利开发的存在了.在上半年笔者就被要求采用TS开发新的项目,并在一些老项目中用TS去改造(因为沟通原因我以为某个远程组件只有TS版本).在其中也有了一些思考. 首先是目录结构. ...

  3. 软件项目开发计划书【申明:来源于网络】

    软件项目开发计划书[申明:来源于网络] 地址:http://jingyan.baidu.com/article/9f63fb91ab4da1c8400f0ea1.html 转载于:https://ww ...

  4. 【毕业设计】JAVA网络通信系统的研究与开发(论文+源代码+开题报告)

    文章目录 目录 一.系统设计 二.系统实现 源文件 目录 一.系统设计 网络通信在当今信息社会中起着不可或缺的作用 ,人们可以利用网络通信技术进行即时的信息交流.例如,人们可以通过Internet搜索 ...

  5. 仿微信的网络聊天室项目开发【完整源码讲解】

    目录 总体开发思路 服务器端 服务器界面设计 建立TCP服务器端通信 建立服务器消息发送输出流 建立服务器消息接收输入流 建立服务器实时消息通信线程 设置服务器通信自由断开 客户端 客户端界面设计 建 ...

  6. Python编程:从入门到实践+爬虫开发与项目实战+网络编程基础+项目开发实战

    给还在苦苦自学Python的小伙伴们分享一波学习教程~有了它们,至少能节省50%的时间,少走一半的弯路. 书不在多,而在于精~ <Python编程:从入门到实践>豆瓣评分9.2 本书是针对 ...

  7. Python大型网络爬虫项目开发实战

    1    讲师简介 2    课程简介及特色 实战精通Scrapy爬虫项目编写 "Scrapy是Python的一个非常流行的爬虫框架,使用Scrapy框架可以很方面做出大型爬虫项目,但Scr ...

  8. Computer:互联网开放平台项目知识补充之开发-运维-网络-网关等术语(DMZ、负载均衡、F5、Nginx、容器)的简介、使用方法之详细攻略

    Computer:互联网开放平台项目知识补充之开发-运维-网络-网关等术语(DMZ.负载均衡.F5.Nginx.容器)的简介.使用方法之详细攻略 目录 DMZ(隔离区)的简介及其使用方法 1.DMZ区 ...

  9. 外包项目开发课程整理三:Selfsourcing(自主开发)及 Prototyping(打造原型)

    外包项目开发课程整理三:Selfsourcing(自主开发)及 Prototyping(打造原型) 课程整体内容: Insourcing and the SDLC(内包及系统开发生命周期):定义传统 ...

最新文章

  1. ionic开发:第一步
  2. Android Jetpack组件之Navigation使用-源码
  3. oracle手动启动服务
  4. 2021年北京高校数学建模校际联赛题目 出版社图书印制策略
  5. 电商企业怎样用好大数据
  6. mysql 5.7.21-linux_MySQL 5.7.21 Linux平台安装 Part 2
  7. rust这么拆除钢墙_rust腐蚀如何拆墙
  8. python中get和getall_Scrapy框架get() 、getall() 、extract() 、extract_first()的区别
  9. python企业微信群聊_python调用企业微信接口发送群聊消息代码参考
  10. 现在动画制作用什么软件?
  11. android ipv6 谷歌,Ipv6使用google服务的DNS
  12. 架构设计:系统存储(21)——图片服务器:详细设计(1)
  13. 百度地图如何去除 百度地图的logo
  14. NAPI(New API)的一些浅见
  15. http状态返回代码 1xx(临时响应)
  16. golang元转分、分转元
  17. 电子元器件的分类有哪些?
  18. 编写测试用例基本要求、非功能性测试和状态迁移法介绍
  19. 求职者该如何理清自身的求职策略?
  20. MATLAB 符号表达式与运算全面详细讲解

热门文章

  1. X.509证书(结构+原理)
  2. javascript高级程序设计阅读收获(5.4.2)——Math
  3. 关于OpenCV for Python入门-dlib实现人脸检测
  4. javaCV入门指南:调用FFmpeg原生API和JavaCV是如何封装了FFmpeg的音视频操作?
  5. 关闭 php X-Powered-By 信息
  6. 当当网高可用架构之道
  7. 关于计算机的英语作文带翻译,关于网络的英语作文带翻译
  8. 人民路婚纱店入驻华盛街
  9. 求三角形的外接圆圆心个半径
  10. 公司裁员不想给补偿,竟然耍这些不要脸的裁员手段..