为了账号安全,请及时绑定邮箱和手机立即绑定

Java Socket 读取TCP服务端数据包不完整

Java Socket 读取TCP服务端数据包不完整

幕布斯7119047 2019-04-11 10:15:47
Java Socket 读取TCP服务端数据包不完整:除了利用数据包大小循环读取输入流的得到完整的数据外,还有其他什么方法?数据包在网络传输的过程中,数据传递到客户端基本处于“无序”态。除了开辟一块内存按数据包的顺序存放外,还有其他更好的方案么?
查看完整描述

5 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

TCP 因为是长连接的,肯定是有序的。数据接收不完整,这种现象在通讯中很常见的,是必须代码处理。


查看完整回答
反对 回复 2019-05-07
?
浮云间

TA贡献1829条经验 获得超4个赞

我已经解决了,我说的是无序是加了引号的,为什么总是有人抓住这无关紧要的东西呢,数据包在接收的过程中我要解析包并判断长度,有时,数据包就是感觉服务端没发完,就一直阻塞,今天在服务端测试一看,果真是服务端的数据没有发完。

查看完整回答
反对 回复 2019-05-07
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

TCP是有序的吧?UDP才是无序的。


查看完整回答
反对 回复 2019-05-07
?
绝地无双

TA贡献1946条经验 获得超4个赞

Tcp是连续,并有吃重传机制。


查看完整回答
反对 回复 2019-05-07
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

提问人的基础知识不扎实啊。

TCP是长连接,数据长度无限。
UDP是短连接,长度有限。

有序性:
TCP按发送的次序接受数据,在这个意思上是有序的。
UDP不按发送数据的次序接受数据,在这个意义上是无须的。


查看完整回答
反对 回复 2019-05-07
  • 5 回答
  • 0 关注
  • 2373 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信