3

我想知道是否有可能,例如,在内存中获取一段数据,将其读入输出字符串流(作为二进制数据)并将其写入套接字以供客户端应用程序处理。

我在尝试这样做时遇到的问题如下:

例子:

char name[1024] = "Test";
std::ostringstream message (std::stringstream::out | std::stringstream::binary);

len = strlen(name);
message.write(reinterpret_cast<const char*>(&len), sizeof(int));
message.write(test, len*sizeof(char));

我想将此字符串流写入其中包含所有数据的套接字,但问题是:字符串流写入只执行第一次,在这种情况下写入 4(字符串的长度)并且没有后续写入. 我在这里错过了什么吗?

如果这不是最好的方法,那么最好的方法是什么?这部分是为了减少缓存内存快照的文件 I/O。

提前致谢..

4

1 回答 1

3

您的代码(带有较小的修复)似乎对我有用,因此您可能会检查以确保您正确处理缓冲的二进制数据,即您不假设std::string包含字符串。

于 2014-04-07T07:45:07.137 回答