Java TCP。如何确认收到的数据包是一个完整的数据结构?

时间:2013-02-07 22:15:12

标签: java tcp

我目前有一个侦听和发送TCP套接字的程序。

我遇到的问题是我发送了一个数据包,有时会分成几块。所以我的侦听TCP套接字类认为第一个进入的是整个有效负载。

使用TCP连接进行编程时,人们采用的典型方法是什么?

1 个答案:

答案 0 :(得分:2)

你不能假设第一块是整个有效载荷。你必须继续读取插座,直到你得到所有它。

有两种选择:

选项1
标记消息的结尾(数据结构)。然后你的听众继续阅读,直到它得到消息结束标记。

选项2
在发送实际数据之前发送消息或数据结构的长度。然后你的听众继续阅读,直到它读取所有字节。