关于ghost 网络数据解析的学习心得。(怎么解决欺骗型数据包 或者ping数据包导致服务端宕机)
首先声明,本人在学习阶段,所以所讲之处!难免会出错且啰嗦,本文旨在跟大家分享近期对iocp(window高并发服务器编程)的几点心得。大神欢迎大家喷我。
先为大家介绍一个c++高并发的大神群!
群主非常热情,而且技术实力雄厚。只要大家能虚心学习,群主每天群里分享面试以及编程经验。欢迎加入QQ群49114021 名字是高性能服务器开发 群主 范蠡³² 教授级大神。 本人仅仅群内潜水小鸟一个。请勿见笑。
本文也可以叫做,
判断封包是否属外来封包正确手段之一。
ghost的虽然作为10年前的传奇作品,在iocp网络编程这块依然是可圈可点的。这次因为学习iocp模型顺带就看了下高手们写的(或者改版的)各种版本的ghost远控的代码。
关于网络数据解析
CIOCPServer::OnClientReading(ClientContext* pContext, DWORD dwIoSize)
OnClientReading 本函数负责接收数据,并且接下出包头,这里所指的包头其实是一个五位数的字符串,
BYTE bPacketFlag[] = {‘G’, ‘h’, ‘o’, ‘s’, ‘t’}; //这里是数据发送的标记 主控端同被控端字符必须一致。
收到数据包,服务端或者客户端先解析数据包前5个字节!如果是,那就继续接下后面的数据 一次是 包长 跟具体数据,如果前5个字节不是这几个字符那么久直接丢弃 具体:
memcmp(pContext->m_byInBuffer, m_bPacketFlag, FLAG_SIZE) == 0)
通过这点学习 我们就很容易解决我遇到的一个难题,当我收到一个不认输的数据包的时候,我的服务端就直接宕机了。 通过学习我很完美的解决了问题依葫芦画瓢 加入封包验证即可。
小鸟初次写博客!大神略过
- 今日学习心得:如何做解决数据绑定控件嵌套问题
- Wcf服务引用报错数据包含无法解析的引用:没有终结点在侦听可以接受消息的 这通常是由于不正确的地址或者 SOAP 操作导致的
- 解决关于“这个压缩文件格式未知或者数据已经被损坏”
- Android网络编程之使用get方式向服务端提交数据和乱码问题的解决
- Java通过Jpcap 操作网路数据链路层对报文数据解析、监听网络数据包(服务器+客户端)
- IOS学习之十六:网络数据的XML解析 .
- MapXtreme 2005 学习心得 关于地图投影坐标问题的解决方式(十四)
- volley 访问网络时候获取json数据发生乱码问题解决方法,以及gson解析json数据。
- 网络请求与json数据解析——学习笔记
- 关于2147217913 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界 的问题解决方法
- 每日学习心得:Linq解决DataTable按照某一列的值排序问题/DataTable 导出CSV文件/巧用text-overflow解决数据绑定列数据展示过长问题
- Android访问网络系列之--服务端返回XML或JSON格式数据,Android 进行解析并显示
- iOS基础8:自定义MyData/自定义SQLite用于网络判断,版本判断,图片缓存处理,下载或者上传的GET或POST请求,加密手段,.数据解析
- Qt学习心得之网络编程简单的局域网聊天服务端建立
- IOS学习之:网络数据的XML解析
- 【一个批量计算的调度系统的设计与实现】如果需要对成千上万的网络抓包数据文件在规定的时间内进行解析,应该怎么做?
- 算法学习---关于快速排序,数据呈现基本有序和完全无序时候导致的时间复杂度增n^2的解决方案
- 记学习大数据踩坑系列--关于ambari UI界面打不开问题解决方法
- 爬虫-python网络数据收集学习-第3章-心得随笔20180420
- 关于iOS11上MJRefresh tabview刷新后,重新加载另一组数据, 回不到顶部或者头尾显示混乱等问题解决