c++ - Poco FIFOBuffer read() 错误

标签 c++ sockets poco-libraries

我无法让 Poco::FIFOBuffer.read() 工作。获取访问冲突错误或变量结果周围的堆栈已损坏。

    std::string output;

    Poco::FIFOBuffer recvData(BUFFERLEN);

    int iResult = mySockets[vect[2]]->receiveBytes(recvData);
    char* result = "";

    std::cout << recvData.read(result, recvData.size());
    output = result;

在程序的其他地方,一个非常相似的东西似乎工作正常(vect 是一个 vector )mySockets 是一个 Map

Poco::FIFOBuffer sendData(BUFFERLEN, false);
sendData.copy(vect[3].c_str(), vect[3].size());
int iResult = mySockets[vect[2]]->sendBytes(sendData);
output = "data sent, sendBytes returned: " + std::to_string(iResult);

引用:http://pocoproject.org/docs-1.5.0/Poco.BasicFIFOBuffer.html#11400

最佳答案

如上评论所述,文档为 wrong .

如果您希望缓冲区自动调整大小,请使用 Poco::Buffer<char> ;或者,确保 char*指向足够的空间来容纳数据(这很棘手 - 您必须查询 FIFOBuffer 以找出 receiveBytes() 调用返回了多少,因此使用 Poco::Buffer 是一个更简单的选择)。

关于c++ - Poco FIFOBuffer read() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30960355/

相关文章:

C++ 非阻塞套接字 - 等待所有接收数据

c++ - 带有自定义分配器的 std::string

c++ - 具有两个原子的自旋锁的最小限制内存排序

c++ - 允许使用右值的地址吗?

sockets - gRPC 套接字在具有入口的 kubernetes 上关闭

http - 使用边界定界符进行 HTTP 服务器响应

php - 在 PHP 5.x 中使用 fsockopen 循环 Fget

javascript - nodejs https错误: socket hang up with localhost

c++ - POCO - 我可以使用 SocketReactor 作为客户端吗?

c++ - 使用 Poco C++ 库,如何将数据传递给线程?