TCP数据流传输遇到的问题
来源:互联网 发布:产品演示动画制作软件 编辑:程序博客网 时间:2024/06/03 15:35
通过socket传输数据的时候遇到问题。模式:一服务器对多客户端;遇到的问题刚开始感觉有点奇怪,有时正确有时又出错,而且出错的场合也不可捉摸,大致测试了下,猜测过如下可能性:
先是感觉群发可以,单点发送不行
后来发现是有线网可以,无线网不行
再发现是大数据不行,小数据包可以
最后记录在发送端和接收端 数据传输的报文,发现问题是:
在接收端时,TCP数据读取不完全时,就开始解析了,导致协议报文解析错误
靠。
有线网时,速度快,发送大数据报文也可以。
而无线网上面,速度慢,数据发送有较长的时间间隔,所以,数据片读取不完全的情况发生概率高多了。
以流形式传输时,发送端的多次发送可能会被一次接收;
一次发送也可以被多次读取。
比如
发送端发送三个报文:
1.AAAAAAAAAAAAAAAAAAAAAAAAAAAA
2.BBBBBBBBBBBBBBBBBBBBBBBBBBBB
3.CCCCCCCCCCCCCCCCCCCCCCCCCCCC
接收端可能会以不同的形式接收:
可能被一次接收:
AAAAAAAAAAAAAAAAAAAAAAAAAAAABBB
可能被两次接收:
报文1.AAAAAAAAAAAAAAAAAAAAAAAAAAA
报文2.BBBBBBBBBBBBBCCCCCCCCCCCCCC
可能被三次接收:
报文1.AAAAAAAAAAAAAAAAAAAAAAAAAAA
报文2.BBBBBBBBBBBBBBBBBBBBBBBBBBB
报文3.CCCCCCCCCCCCCCCCCCCCCCCCCCC
也可能被四次接收:
报文1.AAAAAAAAAAAAAAAAAAAAAAA
报文2.AAAAABBBBBBBBBBBBBBBBBB
报文3.BBBBBBBBBBCCCCCCCCCCCCC
报文4.CCCCCCCCCCCCCCC
等等。
以流形式,会被任意拆分,因此应用程序,需要对数据进行截分处理。
而原本我的错误理解是:
接收端只可能会被以如下形式接收:分三次接收
第一次接收报文1.AAAAAAAAAAAAAAAAAAAAAAAAAAA
第二次接收报文2.BBBBBBBBBBBBBBBBBBBBBBBBBBB
第三次接收报文3.CCCCCCCCCCCCCCCCCCCCCCCCCCC
- TCP数据流传输遇到的问题
- TCP 的数据流的传输
- DTU:TCP协议的串口数据流传输
- Qt中tcp传输文件遇到的问题
- 网络协议:可靠的数据流传输服务TCP
- workbook传输遇到的问题
- ftp传输遇到的问题
- TCP/IP 数据流套接字传输注意事项
- TCP的交互数据流
- TCP的成块数据流
- TCP的交互数据流
- TCP的成块数据流
- TCP的交互数据流
- TCP的成块数据流
- TCP的交互数据流
- 关于TCP传输的沾包问题
- TCP网络传输, 数据类型的问题
- 基于TCP传输的粘包问题
- Accordion Demonstration
- 第二十四課 文法
- 编程实例:输出50以内7的倍数
- js实现多个打开一个或多个链接
- SQL Server 索引基础知识(3)----测试中一些常看的指标和清除缓存的方法
- TCP数据流传输遇到的问题
- java表达式计算
- C语言Blog
- 使用Ajax自动填写表单
- asfafasf
- YetAnotherForum备忘录2
- SQL Server 索引基础知识(4)----主键与聚集索引
- jquery下拉菜单
- Java设计模式-----Bridge桥接模式