关于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)

通过这点学习 我们就很容易解决我遇到的一个难题,当我收到一个不认输的数据包的时候,我的服务端就直接宕机了。 通过学习我很完美的解决了问题依葫芦画瓢 加入封包验证即可。

小鸟初次写博客!大神略过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值