【发布时间】:2015-04-16 06:00:11
【问题描述】:
我正在尝试将多个数据包从 tcp 服务器发送到客户端,仅使用来自基本“Stream”类的读写。问题是,我不知道数据包的大小(客户端)。我应该在每个数据包之前发送和 int(4 个字节),以便客户端可以调整缓冲区并仅接收指定的字节数吗?我觉得 tcp 协议中已经有一些东西可以处理它,但我似乎找不到它。
【问题讨论】:
-
I feel like there's already something in the tcp protocol that handles that。不,没有。 -
您不是在发送数据包,而是在写入流。一次调用写入或读取!= tcp 发送的一个数据包
-
@ScottChamberlain 我明白这一点,但我的问题更像是“是否有必要实现数据包大小前缀才能发送数据包?”
-
是的,如果您没有固定大小的消息格式,发送一个 4 字节的 int 可能是最好的方法。这样在您的接收端读取四个字节,将其解码为
int n,然后读取n更多字节。