请假一个socket的通信包的问题

chp845 2014-04-29 09:42:41
通信协议采用TLV协议(socket为非阻塞模式,TL长度为4),不考虑网络字节和本地字节差别的情况,请问下出现下面情况应该怎么处理?
正确的情况下:
第一组数据包:0x00020006FFFF (TAG:2 length:6)
第二组数据包:0x00020006FF11 (TAG:2 length:6)
第三包数据包:0x00020006FF00 (TAG:2 length:6)

错误的数据包(其中有一组数据是错误的):
第一组数据包:0x00020006FFFF (TAG:2 length:6)
第二组数据包:0x00020005FF11 (TAG:2 length:5)
第三包数据包:0x00020006FF00 (TAG:2 length:6)

请问下,在这种情况下,如果跳过错误的第二组数据包,并能够够正常解析其他两组数据?一般情况,如果是如果解决客户端恶意发送错误的数据的呀!
...全文
131 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chp845 2014-04-30
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
不知道有多少前人掉在TCP Socket send(人多)send(病少)send(财富) recv(人多病)recv(少财富) 陷阱里面啊! http://bbs.csdn.net/topics/380167545
你说的方式BAS464加结束符,这个做法也太浪费了吧! 有没有其他什么办法可以解决我的问题尼?
AndyStevens 2014-04-29
  • 打赏
  • 举报
回复
接收后,直接丢弃呗
赵4老师 2014-04-29
  • 打赏
  • 举报
回复
不知道有多少前人掉在TCP Socket send(人多)send(病少)send(财富) recv(人多病)recv(少财富) 陷阱里面啊! http://bbs.csdn.net/topics/380167545
l_journey_91 2014-04-29
  • 打赏
  • 举报
回复
丢弃,请求重新传输,连续三次报错,写进日志
chp845 2014-04-29
  • 打赏
  • 举报
回复
引用 1 楼 Automation_dmu 的回复:
接收后,直接丢弃呗
引用 1 楼 Automation_dmu 的回复:
接收后,直接丢弃呗
不是丢的问题,你丢第二组错误数据的时候,也意味着你也会丢弃第三组正确的数据!
01-课程计划02-Activiti工作流概念(使用程序演示工作流执行)03-Activiti介绍04-准备Activiti开发环境05-准备开发环境(配置文件)和核心API的介绍06-Activiti入门程序HelloWorld演示流程的执行07-流程定义的CRUD(上)08-流程定义的CRUD(下)09-流程实例,任务,执行对象控制流程的执行(上)10-流程实例,任务,执行对象控制流程的执行(下)11-流程变量(上)12-流程变量(下)13-流程历史数据查询14-第一天知识点回顾15-连线16-排他网关17-并行网关18-流程实例开始结束19-接收任务活动(receiveTask)20-个人任务分配(三种方式)21-组任务分配(三种方式)22-工作流提供的用户角色组(IdentityService)23-项目框架搭建(Struts)24-请假流程管理系统框架搭建(Spring+Struts)25-请假流程图26-知识点回顾27-系统登录(Session)28-自定义拦截器实现Session验证29-部署流程定义(zip文件部署)30-流程定义和部署对象查询31-查看流程图和删除流程定义32-请假单业务的查询列表和新增保存33-请假单业务的编辑保存和删除34-申请请假(启动流程实例)35-查找正在执行的个人任务列表36-使用类动态指定下一个任务的办理人37-办理任务(获取任务节点form key中的值)38-办理任务(使用任务ID,查询请假单)39-办理任务(使用任务ID,查询任务完成后的连线名称集合)40-完成任务41-查询办理任务时操作的历史批注信息(上)42-查询办理任务时操作的历史批注信息(下)43-在请假单中查询历史批注信息(使用请假单ID查询)44-查看当前流程图和课程总结

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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