小编Gab*_*iMe的帖子

BOOST ASIO:如何在async_read_until中使用有限的缓冲区大小

我使用一个小缓冲区(例如128字节),我想在TCP连接上使用带有大量传入消息的"async_read_until"(在分隔符之前丢弃除了最后128个字节之外的所有消息).

如何才能做到这一点?ASIO文档不太清楚当提供的缓冲区不够大时会发生什么.

这是我的读取初始化代码

typedef boost::shared_ptr<boost::asio::streambuf >streambuf_ptr;
streambuf_ptr inBuf(new boost::asio::streambuf (128));
boost::asio::async_read_until(*sock, *inBuf, "\r\n\r\n", boost::bind(my_read_handler, sock, inBuf, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
Run Code Online (Sandbox Code Playgroud)

boost boost-asio

2
推荐指数
1
解决办法
1531
查看次数

条件变量:: wait_for中的gcc错误

似乎gcc中存在一个错误std::condition_variable::cv.wait_for().

如果系统时间在等待期间发生变化,则会在错误的时间段后返回.

大多数情况下 - 如果时间移动到过去,它就不会返回,或者如果时间移动到未来,它会立即唤醒.

我认为原因是它使用系统时钟而不是steady_clock(https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/condition_variable#L67).

有人遇到过这个问题吗?什么可能是一个解决方法?

c++ gcc

2
推荐指数
1
解决办法
433
查看次数

安全分割功能

我想定义某种安全除法(和模)函数,当尝试除以零时会返回一些预定义值.我不想抛出异常,只是为了返回一些"合理"的值(1?0?)并继续程序流程.显然没有正确的返回值,但我想知道是否有一些标准或已知的方法

c++

1
推荐指数
1
解决办法
2736
查看次数

Google protobuf:推荐的C++库来处理通信?

有这样的框架还是lib?这也会照顾客户端/服务器套接字部件吗?或者只是使用像BOOST :: ASIO这样的东西是protobuf的标准做法?

c++ protocol-buffers

1
推荐指数
1
解决办法
1563
查看次数

C++ 11:有没有办法强制类只能用作右值?

假设我设计了一个类,它应该始终只作为rvalue存在.总是.

确保此类实例永远不会作为左值出现在代码中的最佳方法是什么?

如果没有这种方式,最接近的方法是什么?

c++ c++11

1
推荐指数
1
解决办法
129
查看次数

标签 统计

c++ ×4

boost ×1

boost-asio ×1

c++11 ×1

gcc ×1

protocol-buffers ×1