1

我正在编写一个应用程序,它从服务器获取一个 XML 文件,然后使用里面的数据。我的问题是,因为 TCP 确保所有数据包都到达并且我无法控制它如何将数据分开,所以限制缓冲区大小是否有意义?如果是这样,我可以分块发送数据并在客户端重新组合它们。显然我不能做一个无限的缓冲区。XML 可以变得相当大,高达 256kb,我有点担心保留那个大小的缓冲区。数据是由 Android 设备提取的,但我们可以假设该设备具有 1gb 的 RAM。

4

3 回答 3

0

平均而言,网络堆栈中的默认缓冲区通常被调整为良好。除非您的应用程序特别不寻常(听起来不像),否则最好不要更改缓冲区大小。端点不同的事实也将导致紧张,从而阻止同时为两者选择更优化的任何东西。

如建议的那样,如果您在接收端使用流解析器,则缓冲区大小并不重要。在您准备好消息时发送消息,以减少因批处理整个文档而导致的延迟。

于 2012-04-15T23:27:27.910 回答
0

TCP 接收缓冲区大小与正在传输的数据大小无关。显然,您可以通过 TCP 流传输千兆字节的数据,并且不需要缓冲区大小相同。缓冲区大小通常与性能(端点上的网络和处理器)有关,并且可能很小 - 在大多数情况下,您可能不必更改默认设置。

于 2012-04-15T22:26:38.200 回答
0

您不需要自己在客户端重新组装它。只需将 XML 解析器直接附加到套接字 InputStream。

于 2012-04-15T22:32:32.267 回答