具有较小缓冲区的 C++ recv 套接字

C++ recv socket with smaller buffer

我有一台服务器通过套接字连接向我的客户端发送文件。发送的消息是一个包含有效载荷长度和有效载荷本身的结构。

问题是,如果有效负载有 270 个字节而我的缓冲区只有 256 个字节,当我再次调用接收并将第一次接收时严格接收的有效负载附加到输出文件中的第二次接收时在它们之间获取一些随机数据。

例如,如果我发送 "the quick brown fox jumps over the lazy dog" 并且缓冲区在 "over" 结束,它将写入文件:"the quick brown fox jumps over%&$&#57f-6$+the lazy dog"

在附加您在第二次接收中获得的字符串之前,以 NULL 字符“\0”终止第一次接收中接收到的字符串。