gpt4 book ai didi

java - 防止通过 TCP 拆分数据包

转载 作者:可可西里 更新时间:2023-11-01 02:47:03 25 4
gpt4 key购买 nike

我正在编写一个使用 TCP 套接字通过网络传输文件的程序。

现在我注意到,当我发送一个大小为 1024 字节的数据包时,我将它们拆分到另一侧。

我所说的“拆分”是指我得到一些数据包,就好像它们是整个数据包的一部分一样。

当数据包非常小(每个数据包大约 30 字节)因此文件传输速度非常慢时,我尝试减小数据包大小并且算法有效。

我能做些什么来防止 split 吗?

已解决:我将连接切换到 UDP 上,并且由于 UDP 是数据包限制的,所以它可以工作

最佳答案

TCP 中没有这样的东西。

TCP是一个流,你写什么,另一端就得到什么。这并不意味着您按照编写的方式理解它; TCP 可能会分解或分组数据包,以便尽可能有效地完成工作。您可以在一次写入中发送 8 兆字节的数据包,而 TCP 可以分解为 10、100 或 1000 个数据包,您需要知道的是,在另一端您将得到恰好 8 兆字节的数据包。

为了有效地进行文件传输,您需要告诉接收方您要发送多少字节。接收方可以以一个 block 或 100 个 block 的形式读取它,但必须跟踪它读取的数据以及要读取的字节数。

关于java - 防止通过 TCP 拆分数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22221352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com