TCP通信协议包头定义

马壮mz 2015-07-27 09:18:11
使用TCP通信协议时,数据报中有无必要定义包头包尾呢,Tcp协议能完全彻底的确保通信内容的正确与否,
...全文
582 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
www_adintr_com 2015-07-27
  • 打赏
  • 举报
回复
TCP 传输的内容是有校验的,保证传输的准确性,如果校验失败会要求发送方重新发送。 如果真有那么巧,校验和字段和某个数据同时在传输中产生了错误,而且错来刚好匹配上了校验和,那还是有可能收到错误数据的。不过这种情况出现的概率低得可以认为它不存在。
jiqiang01234 2015-07-27
  • 打赏
  • 举报
回复
1、tcp传输消息时需要自定义包头包尾(即帧协议),因tcp是二进制流协议,没有消息边界,无法自动完成“分包”的功能 2、自定义帧协议可以提高tcp的可靠性(tcp不保证100%可靠收发),更强的可靠性需要自定义来保证 3、自定义的帧协议能更好的根据业务逻辑来定义数据
飞翔的薄荷 2015-07-27
  • 打赏
  • 举报
回复
包头应该要加标示,tcp没问题,但是你自己写的代码解析错误,导致数据混乱,也是有可能的。
赵4老师 2015-07-27
  • 打赏
  • 举报
回复
不知道有多少前人掉在TCP Socket send(人多)send(病少)send(财富) recv(人多病)recv(少财富) 陷阱里面啊! http://bbs.csdn.net/topics/380167545

65,187

社区成员

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

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