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

Java Socket 读取TCP服务端数据包不完整:除了利用数据包大小循环读取输入流的得到完整的数据外,还有其他什么方法?

数据包在网络传输的过程中,数据传递到客户端基本处于“无序”态。除了开辟一块内存按数据包的顺序存放外,还有其他更好的方案么?


幕布斯7119047
浏览 2374回答 5
5回答

蝴蝶刀刀

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

浮云间

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

一只斗牛犬

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

绝地无双

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

一只甜甜圈

提问人的基础知识不扎实啊。TCP是长连接,数据长度无限。UDP是短连接,长度有限。有序性:TCP按发送的次序接受数据,在这个意思上是有序的。UDP不按发送数据的次序接受数据,在这个意义上是无须的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java