博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】TCP协议的无消息边界问题
阅读量:6717 次
发布时间:2019-06-25

本文共 480 字,大约阅读时间需要 1 分钟。

http://www.cnblogs.com/eping/archive/2009/12/12/1622579.html 

 

使用TCP协议编写应用程序时,需要考虑一个问题:TCP协议是无消息边界的,即不能保证来自单个Send方法的数据能被单个Receive方法读取。

eg:

第一次发送:abcdefg   第二次发送:123456         接收方接收数据时,可能会出现以下情况:

第一次接收:abcdefg123456   也可能出现:第一次接收:abc 第二次接收:efg12 第三次接收:3456

因此要解决TCP发送消息与接收消息一致性,编程时必须要解决消息边界问题。

解决办法:1、发送固定长度的消息。这种方适用于信息长度固定的场合。

2、将消息长度与消息一起发送。这种方法增加了数据传送信息量,也增加了编程工作量。

eg:每次发送的字符串信息前面用2个字节表明本次信息的长度,接收方先从这两个字节得到信息长度。然后根据长度值循环接收发送方发送的字符串

3、使用特殊标记分隔消息。这种方法适合信息本身不包含特殊标记的场合。如每发送一行信息,就可以用回车换行作为分隔符。

你可能感兴趣的文章
英特尔发布CPU新架构,突破性采用3D堆栈法
查看>>
Elixir 1.3带来新的语言功能、API和改进后的工具
查看>>
Pivotal发布包含反应式数据访问特性的新一代Spring Data的第一个里程碑版本
查看>>
Guava-Optional(译)
查看>>
最新的Java SE平台和JDK版本发布计划
查看>>
从使用场景学Git
查看>>
码农的黑客反击战
查看>>
[deviceone开发]-直播APP心形点赞动画示例
查看>>
React Native 中的 Android 原生模块
查看>>
微信小程序新蓝海全行业深度解析报告
查看>>
canvas初尝试之放大镜图标绘制
查看>>
LeetCode 189: Rotate Array (Java)
查看>>
node scribe中文编码问题
查看>>
Django权限使用总结
查看>>
互联网广告作弊的危害,以及如何反作弊
查看>>
温故js系列(3)-cookie优缺点&设置获取删除cookie
查看>>
jvm垃圾回收算法
查看>>
从零开始编写React-Express单页博客应用(学习总结)
查看>>
Socket的简单通信
查看>>
SegmentFault 2016 第一季度 Top Writer
查看>>