CSocket重载的OnReceive

whppmy 2017-07-20 09:53:30
最近在做个练手的项目,需要实时获取服务器的数据,服务器也有点特别,只要检查到数据发生改变,会主动给你发送数据,数据不变化,就不会有任何动作,暂时只想到用CSocket里的OnReceive函数进行自动接收。现在遇到的情况就是,会在缓冲区里存了几条返回信息(一次Receive后buff里面有好几条信息),才会调一次OnReceive,具体多少条不清楚,理论上不是有信息在缓冲区就会调一次OnReceive吗。或者有办法做到一条信息调一次OnReceive吗,新手求指导。

情况如下 一般是以</axes>标签结束的一组回馈信息 这里只是把Receive接收到的buff输出
...全文
173 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶恭介叶恭介 2017-07-21
  • 打赏
  • 举报
回复
将查找到的数据转成字符串,以</axes>分段处理,不足的话缓存起来,跟下次收到到的数据连接再执行分段
zgl7903 2017-07-20
  • 打赏
  • 举报
回复
流式设备粘连正常的, 需要自己缓冲解析 先用个带时间标记的抓包工具分析下,看看服务器发送时是否就粘连了?
孤客天涯 2017-07-20
  • 打赏
  • 举报
回复
定义好协议,自己根据协议进行解析
oyljerry 2017-07-20
  • 打赏
  • 举报
回复
TCP是stream,需要你自己定义协议等来知道如何分割收到的数据等。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧