0

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

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

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

有人可以告诉我这是继续的方法吗?

4

2 回答 2

2

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

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

于 2015-08-13T12:19:56.603 回答
0

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

于 2015-08-13T12:32:15.143 回答