4

我有一台服务器并在其上接收来自另一台服务器的数据。此数据必须使用 zlib 压缩并通过套接字发送到第三个服务器。第三台服务器使用 gzip 解压缩数据。

我使用这个功能。

std::string compressData(const std::string &data)
{
   using namespace boost::iostreams;
   using namespace std;
   using namespace boost::archive::iterators;

   stringstream zippedOutputStream;
   filtering_ostream filteringStream;
   filteringStream.push(gzip_compressor());
   filteringStream.push(zippedOutputStream);
   stringstream stringStream;
   stringStream << data;
   boost::iostreams::copy(stringStream, filteringStream);

   return zippedOutputStream.str();
}

第三台服务器一次接收两个或多个片段。它尝试使用 gzip 解压缩数据,但结果只是第一部分。其他部分不见了。我应该如何更改 compressData 函数来解决这个问题。

4

0 回答 0