TCP数据流传输遇到的问题

来源:互联网 发布:产品演示动画制作软件 编辑:程序博客网 时间:2024/06/03 15:35

通过socket传输数据的时候遇到问题。模式:一服务器对多客户端;遇到的问题刚开始感觉有点奇怪,有时正确有时又出错,而且出错的场合也不可捉摸,大致测试了下,猜测过如下可能性:

先是感觉群发可以,单点发送不行

后来发现是有线网可以,无线网不行

再发现是大数据不行,小数据包可以

最后记录在发送端和接收端 数据传输的报文,发现问题是:

在接收端时,TCP数据读取不完全时,就开始解析了,导致协议报文解析错误

靠。

有线网时,速度快,发送大数据报文也可以。

而无线网上面,速度慢,数据发送有较长的时间间隔,所以,数据片读取不完全的情况发生概率高多了。

以流形式传输时,发送端的多次发送可能会被一次接收;
一次发送也可以被多次读取。
比如
发送端发送三个报文:
1.AAAAAAAAAAAAAAAAAAAAAAAAAAAA
2.BBBBBBBBBBBBBBBBBBBBBBBBBBBB
3.CCCCCCCCCCCCCCCCCCCCCCCCCCCC

接收端可能会以不同的形式接收:
可能被一次接收:

AAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCC

可能被两次接收:
报文1.AAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBB
报文2.BBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCC

可能被三次接收:
报文1.AAAAAAAAAAAAAAAAAAAAAAAAAAAA
报文2.BBBBBBBBBBBBBBBBBBBBBBBBBBBB
报文3.CCCCCCCCCCCCCCCCCCCCCCCCCCCC

也可能被四次接收:
报文1.AAAAAAAAAAAAAAAAAAAAAAA
报文2.AAAAABBBBBBBBBBBBBBBBBB
报文3.BBBBBBBBBBCCCCCCCCCCCCC
报文4.CCCCCCCCCCCCCCC

等等。
以流形式,会被任意拆分,因此应用程序,需要对数据进行截分处理。

而原本我的错误理解是:

接收端只可能会被以如下形式接收:分三次接收

第一次接收报文1.AAAAAAAAAAAAAAAAAAAAAAAAAAAA
第二次接收报文2.BBBBBBBBBBBBBBBBBBBBBBBBBBBB
第三次接收报文3.CCCCCCCCCCCCCCCCCCCCCCCCCCCC

理解完全错误。又由于后面的报文解析没有完善的出错处理,导致程序行为不可理解。因此感觉这个错误神秘兮兮。
是这样的麼?
至少测试结果展现出来就是这样的。
 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 c照12分不够扣怎么办 扣了18分怎么办一次性 c照累计扣12分怎么办 车辆超速扣12分怎么办 一次超速扣12分怎么办 分扣了罚款未交怎么办 c照一次扣12分怎么办 人在外地身份证到期了怎么办 手机进水了屏幕不亮怎么办 北京一证通过期怎么办 小米6音量键进水怎么办 考驾照怕过不了怎么办 学车对车没感觉怎么办 居住证到期2个月怎么办 生育险差一个月怎么办 驾照扣了38分怎么办 新疆转入山东上学怎么办手续 驾照过日期换证怎么办 机动车被扣24分怎么办 车辆被扣24分怎么办 现在深圳牌十年老车怎么办? 护士证过期4年了怎么办 护士资格证延续注册过期了怎么办 护士资格证过期没注册怎么办 护士资格证注册时间过期怎么办 辅警体检视力不行怎么办 护士延续注册体检怀孕怎么办 护士资格证没有延续注册怎么办 申请信用卡没有座机号码怎么办 网上申请信用卡没有座机号码怎么办 我叫上门服务被骗了怎么办 上门服务被骗了3000多怎么办 微信被骗9000元怎么办 奥迪a8气囊灯亮怎么办 驾考站岗迟到了怎么办 老板欠员工工资不给怎么办 如果有一天我没头发了怎么办 苏州公积金密码忘了怎么办 科二考试第二把怎么办 科一老是记不住怎么办 科目二考试没去怎么办