boost-asio相关内容
我想要一个非常简单的周期性计时器,每 50 毫秒调用一次我的代码.我可以制作一个一直休眠 50 毫秒的线程(但这很痛苦)...我可以开始研究 Linux API 来制作计时器(但它不可移植)... 我喜欢使用 boost.. 我只是不确定这是否可能.boost 是否提供此功能? 解决方案 Boosts Asio 教程中的第二个示例对此进行了解释. 您可以在此处找到它. 之后,
..
我正在尝试理解 Boost.Asio,目的是潜在地使用条件变量和 Boost.Asio 来实现一个信号系统. 我看过其他 StackOverflow 问题boost asio asynchronously waiting on a条件变量、boost::asio异步条件和提升条件变量问题,但这些问题/答案都没有令人满意地触及我的一个基本问题:是Boost.Asio 不适用于或自然适合条件变量
..
显然 boost::asio::async_read 不喜欢字符串,因为 boost::asio::buffer 的唯一重载允许我创建 const_buffers,所以我坚持将所有内容读入流缓冲. 现在我想将 streambuf 的内容复制到一个字符串中,但它显然只支持写入 char* (sgetn()),使用 streambuf 创建一个 istream 并使用 getline(). 有
..
我对 boost asio::streambuf 类中的输入序列和输出序列感到困惑. 根据文档中的代码示例(用于发送数据),表示输入序列的缓冲区用于写入套接字,而表示输出序列的缓冲区用于读取. 示例 - boost::asio::streambuf b;std::ostream os(&b);操作系统 现在有命名问题吗? 解决方案 boost::asio::streambu
..
这个问题是对应该我在 Android 中选择 Boost Asio 还是 Aysnc Socket 线程?问, Boost 库的目的是广泛有用,可在广泛的应用程序中使用,但目前还没有对 Android 和 iOS 的官方支持 是否有任何特定原因,例如未针对嵌入式设备?还是其他原因? 是否有人知道在 Android 或 iOS 上使用 Boost 构建的任何应用程序? 是否建议将 b
..
我经常在代码中看到这种模式,将 shared_from_this 作为第一个参数绑定到成员函数并使用 async_* 函数分派结果.这是另一个问题的示例: void Connection::Receive(){boost::asio::async_read(socket_,boost::asio::buffer(this->read_buffer_),boost::bind(&Connectio
..
我正在尝试安全取消 boost::asio::basic_waitable_timer. 根据这个答案,这段代码应该做那个工作: timer.get_io_service().post([&]{timer.cancel();}) 恐怕它对我不起作用. 我做错了什么吗? 这是我的代码: #include #include "boost/asio.hpp"#include
..
boost 网站上提供的文档是...有限. 据我所知,普遍的共识是很难找到关于 boost::asio 库的好的文档. 真的是这样吗?如果是,为什么? 注意事项: 我已经找到了(非增强版)Asio 网站 - 并且文档看起来是相同的到 boost 网站上的那个. 我知道 Boost::asio 是新的!我正在寻找解决方案而不是借口. 编辑: 有一个 建议添加网络
..
如何在C++中使用boost创建线程池,以及如何将任务分配给线程池? 解决方案 过程非常简单.首先创建一个 asio::io_service 和一个 thread_group.用链接到 io_service 的线程填充 thread_group.使用 boost::bind功能. 要停止线程(通常在您退出程序时)只需停止 io_service 并加入所有线程. 您应该只需要这些
..
我在阅读 Boost.Asio 示例时遇到了 enable_shared_from_this,在阅读文档后,我仍然不知道如何正确使用它.有人可以给我一个例子和解释什么时候使用这个类是有意义的. 解决方案 当你只有 这个.没有它,您将无法获得 shared_ptr 到 this,除非您已经拥有一个成员.此示例来自 enable_shared_from_this 的 boost 文档:> c
..
我阅读了 boost asio http 服务器示例代码(参见 http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/example/cpp11/http/server/connection.cpp) 并找到 auto self(shared_from_this()); 变量被用于捕获范围([this, self]).但是在 lambda
..
我已经实现了一些基于模块的 Active Object 设计模式.这是非常简单的实现.我有调度程序、激活列表、请求和期货来获得响应.我的要求是这样的: 对活动对象的访问应通过执行其方法进行序列化在它自己的线程中(主要请求和活动对象的假设设计模式) 调用者应能够指定请求执行的优先级.这意味着如果等待执行的请求超过零个,它们将按照分配给每个请求的优先级排序.优先级较高的请求应首先执行,因此如果
..
我有一个如下所示的数据结构: 类型定义结构{无符号短 m_short1;无符号短 m_short2;无符号字符 m_character;我的数据类型; 我想使用 boost::serialization 来序列化这个数据结构,然后使用 boost::asio 通过 TCP/IP 传输它,然后让另一个应用程序接收数据并使用相同的 boost 库反序列化它. 我正在尝试关注 boost:
..
我无法从 boost asio 缓冲区读取向量.我有这个向量: std::vector积分; 我用 boost asio write 发送 boost::asio::write (socket, boost::asio::buffer(&new_buffers->points.front(), nr_points * 3 * sizeof (float))); 另一方面,我有: st
..
我正在使用 Boost ASIO 库用 C++ 编写服务器.我想在我的服务器日志中显示客户端 IP 的字符串表示.有人知道怎么做吗? 解决方案 socket 有一个函数可以检索远程端点.我会尝试一下这个(长的)命令链,它们应该检索远程端 IP 地址的字符串表示: asio::ip::tcp::socket socket(io_service);//在这里做你所有的接受和其他事情.asio
..
我正在尝试使用 Google 的协议缓冲区和 boost::asio 在 C++ 中一起破解客户端. 我的问题是我不知道如何将 protobuf 消息提供给 asio.我有的是这个: //设置 *sock - 有效玩家信息;info.set_name(name);//其他的东西 现在我知道以下是错误的,但我还是会发布: size_t request_length = info.Byte
..
我目前第一次尝试将 boost::asio 用于一些简单的 tcp 网络,但我已经遇到了一些我不确定如何处理的问题.据我了解 io_service.run() 方法基本上是一个循环,它会一直运行直到没有其他事情要做,这意味着它会一直运行直到我释放我的小服务器对象.由于我已经设置了某种主循环,为了简单起见,我宁愿从那里手动更新网络循环,而且我认为 io_service.poll() 会做我想做的事,
..
boost::asio::io_service::run() 在出错时抛出 boost::system::system_error 异常.我应该处理这个异常吗?如果是,怎么办? 我的 main.cpp 代码是这样的: main(){boost::asio::io_service 队列;boost::asio::io_service::work 工作(队列);{//设置一些处理程序...**
..
我正在编写一个简单的 tcp 客户端来发送和接收单行文本.异步操作由 std::future 处理,以促进具有超时的阻塞查询.不幸的是,我的测试应用程序在破坏服务器对象时因访问冲突而崩溃.这是我的代码: TCPClient.hpp #ifndef __TCPCLIENT_H__#define __TCPCLIENT_H__#include #include #include #includ
..
据我所知,同步和异步操作之间的主要区别(即write() or read() vs async_write()> 和 async_read()) 前者直到操作完成 - 或错误才返回,后者立即返回. 由于异步操作由 io_service.run() 控制,该操作在受控操作完成之前不会完成.在我看来,在使用 POP3 等协议的 TCP/IP 连接中涉及的顺序操作中,操作是一个序列,例如: C
..