我有一个 C++ 客户端,它在特定时间间隔后向 Java 服务器应用程序发送一个大字符串(最小大小为 10 KB)。在那段时间里,c++ 应用程序积累了大量的数据并将其完整地发送到服务器。服务器也一次性接收到它。
我想始终保持字符串变量的大小小于 string::max_size。一旦字符串的大小接近限制,我就会将该字符串发送到服务器并清除该字符串,然后才继续收集剩余数据。
如果字符串可以保存完整的数据,整个数据是否会从客户端传输到服务器而不会失败。(假设没有连接重置或任何其他此类问题出现。)
有人可以告诉我这是否是继续进行的方式?
最佳答案
客户端不知道字符串有多大,也不知道何时停止监听并开始处理接收到的字符串。
您需要将字符串的大小作为 int 发送,然后将数据发送过来。 当服务器接收到所有的数据后,就知道字符串接收正确了。
关于java - 可以通过 TCP 套接字发送的最大字符大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31987919/