网游编程通信设计笔记-------boost版
来源:互联网 发布:云端软件库 编辑:程序博客网 时间:2024/04/28 10:21
在网络通信这一块,怎么设计通信协议和如何处理数据包?
1.通信协议。这个建议先将数据流序列化在传输,好处和坏处就不多讨论了。然后就是数据包内容,数据包的第一个字段
应该是这个包的长度。因为服务端接受数据包的时候,是需要知道接受的数据包的长度然后才能对数据进行解析处理,不然数据
接收到了一半或者接收到了两个包,都是会破坏数据的。有了长度信息,就能够准确定位数据了。至于数据的具体内容,可以自定义
格式。可以采用Json xml等等,如果有安全需求就自己加密。
2.怎么处理数据包,或者说服务端的处理流程是啥?
1.主线程负责接收客户端建立连接的请求,收到一个就建立一个连接,并新建一个线程去处理这个连接。
2.处理连接的线程在建立连接后开始接收客户端发送过来的数据,先读取前几个字节获得长度,具体几个字节自己定义。
然后就可以收取数据,收取到指定字节的数据后开始处理逻辑。处理完逻辑后开始接收下一个包。你可能会说这不就变成单线程了么,
为什么不并发接收数据呢?这主要是为了简化逻辑处理,如果逻辑要考虑并发的话,需要实时考虑加锁解锁,这实际上是很费事的。
0 0
- 网游编程通信设计笔记-------boost版
- 网游服务器通信架构设计
- 网游服务器通信架构的设计
- 网游服务器通信架构的设计
- 网游服务器通信架构的设计
- 网游服务器通信架构的设计
- 网游服务器通信架构的设计
- 网游服务器通信架构的设计
- boost asio编程笔记
- 网游设计之道
- 网游策划设计一
- 网游任务系统设计
- 关于网游任务设计
- 网游服务器数据包设计
- 网游服务器编程入门
- Boost.asio 0.37设计笔记(翻译)
- 基于Boost.Asio的异步通信服务器设计与开发
- Boost Serialization在网游中的应用实例
- 浅谈PHP调用接口实现天气查询功能
- Ubuntu下Postfix邮件服务器安装及基本的设置
- Linux时间函数
- A Simple For Emberjs
- DBCP连接池配置参数说明
- 网游编程通信设计笔记-------boost版
- Android 启动其他Activity并返回结果
- php pack、unpack、ord 函数使用方法(二进制流接口应用实例)
- second order system analysis 自动控制原理 二阶系统的matlab仿真分析
- 初识python
- makefile '@' '$' '$$' '-' '-n ' 使用小结
- MES(制造企业生产过程执行管理系统)
- MyEclipse编码设置,中文乱码解决方法
- 互联网金融生猛:2013年移动支付规模近10万亿