可以通过TCP套接字发送的最大字符大小

时间:2015-08-13 12:12:52

标签: java c++ string max-size

我有一个c ++客户端,在一定的时间间隔后向Java服务器应用程序发送一个大字符串(最小大小为10 KB)。在那个时间间隔内,c ++应用程序会累积大量数据并将其完全发送到服务器。服务器也会一次性接收它。

我希望始终保持字符串变量的大小小于string :: max_size。一旦字符串的大小接近限制,我就会将该字符串发送到服务器并清除字符串,然后继续收集剩余的数据。

如果字符串可以保存完整的数据,那么整个数据是否会从客户端传输到服务器。(假设没有连接重置或任何其他此类问题。)

有人可以告诉我,如果这是继续进行的方式吗?

2 个答案:

答案 0 :(得分:1)

客户端不知道字符串有多大,也不知道何时停止收听并开始处理收到的字符串。

您需要将字符串的大小作为int发送,然后发送数据。 当服务器收到所有数据后,它将知道该字符串已被正确接收。

答案 1 :(得分:0)

是的,但我建议您在获取数据时发送数据,而不是增加延迟并浪费空间缓冲它。 TCP会处理它。