boost-asio相关内容

C++ Boost ASIO 简单的周期性定时器?

我想要一个非常简单的周期性计时器,每 50 毫秒调用一次我的代码.我可以制作一个一直休眠 50 毫秒的线程(但这很痛苦)...我可以开始研究 Linux API 来制作计时器(但它不可移植)... 我喜欢使用 boost.. 我只是不确定这是否可能.boost 是否提供此功能? 解决方案 Boosts Asio 教程中的第二个示例对此进行了解释. 您可以在此处找到它. 之后, ..
发布时间:2021-12-24 15:12:34 服务器开发

为什么 Boost.Asio 不支持基于事件的接口?

我正在尝试理解 Boost.Asio,目的是潜在地使用条件变量和 Boost.Asio 来实现一个信号系统. 我看过其他 StackOverflow 问题boost asio asynchronously waiting on a条件变量、boost::asio异步条件和提升条件变量问题,但这些问题/答案都没有令人满意地触及我的一个基本问题:是Boost.Asio 不适用于或自然适合条件变量 ..
发布时间:2021-12-24 15:08:30 C/C++开发

将流缓冲的内容复制到字符串

显然 boost::asio::async_read 不喜欢字符串,因为 boost::asio::buffer 的唯一重载允许我创建 const_buffers,所以我坚持将所有内容读入流缓冲. 现在我想将 streambuf 的内容复制到一个字符串中,但它显然只支持写入 char* (sgetn()),使用 streambuf 创建一个 istream 并使用 getline(). 有 ..
发布时间:2021-12-24 15:08:15 C/C++开发

提升 ASIO 流缓冲

我对 boost asio::streambuf 类中的输入序列和输出序列感到困惑. 根据文档中的代码示例(用于发送数据),表示输入序列的缓冲区用于写入套接字,而表示输出序列的缓冲区用于读取. 示例 - boost::asio::streambuf b;std::ostream os(&b);操作系统 现在有命名问题吗? 解决方案 boost::asio::streambu ..
发布时间:2021-12-24 15:07:10 C/C++开发

官方“Boost库"支持安卓和iOS吗?

这个问题是对应该我在 Android 中选择 Boost Asio 还是 Aysnc Socket 线程?问, Boost 库的目的是广泛有用,可在广泛的应用程序中使用,但目前还没有对 Android 和 iOS 的官方支持 是否有任何特定原因,例如未针对嵌入式设备?还是其他原因? 是否有人知道在 Android 或 iOS 上使用 Boost 构建的任何应用程序? 是否建议将 b ..
发布时间:2021-12-24 15:06:38 移动开发

提升 async_* 函数和 shared_ptr 的

我经常在代码中看到这种模式,将 shared_from_this 作为第一个参数绑定到成员函数并使用 async_* 函数分派结果.这是另一个问题的示例: void Connection::Receive(){boost::asio::async_read(socket_,boost::asio::buffer(this->read_buffer_),boost::bind(&Connectio ..
发布时间:2021-12-24 15:05:54 C/C++开发

Boost:asio 的最佳文档?

boost 网站上提供的文档是...有限. 据我所知,普遍的共识是很难找到关于 boost::asio 库的好的文档. 真的是这样吗?如果是,为什么? 注意事项: 我已经找到了(非增强版)Asio 网站 - 并且文档看起来是相同的到 boost 网站上的那个. 我知道 Boost::asio 是新的!我正在寻找解决方案而不是借口. 编辑: 有一个 建议添加网络 ..
发布时间:2021-12-24 15:01:12 C/C++开发

如何在 C++ 中使用 boost 创建线程池?

如何在C++中使用boost创建线程池,以及如何将任务分配给线程池? 解决方案 过程非常简单.首先创建一个 asio::io_service 和一个 thread_group.用链接到 io_service 的线程填充 thread_group.使用 boost::bind功能. 要停止线程(通常在您退出程序时)只需停止 io_service 并加入所有线程. 您应该只需要这些 ..
发布时间:2021-12-24 14:59:26 C/C++开发

`enable_shared_from_this` 有什么用处?

我在阅读 Boost.Asio 示例时遇到了 enable_shared_from_this,在阅读文档后,我仍然不知道如何正确使用它.有人可以给我一个例子和解释什么时候使用这个类是有意义的. 解决方案 当你只有 这个.没有它,您将无法获得 shared_ptr 到 this,除非您已经拥有一个成员.此示例来自 enable_shared_from_this 的 boost 文档:> c ..
发布时间:2021-12-24 14:58:31 C/C++开发

boost::asio 和活动对象

我已经实现了一些基于模块的 Active Object 设计模式.这是非常简单的实现.我有调度程序、激活列表、请求和期货来获得响应.我的要求是这样的: 对活动对象的访问应通过执行其方法进行序列化在它自己的线程中(主要请求和活动对象的假设设计模式) 调用者应能够指定请求执行的优先级.这意味着如果等待执行的请求超过零个,它们将按照分配给每个请求的优先级排序.优先级较高的请求应首先执行,因此如果 ..
发布时间:2021-12-22 08:48:18 C/C++开发

使用Boost序列化和发送数据结构?

我有一个如下所示的数据结构: 类型定义结构{无符号短 m_short1;无符号短 m_short2;无符号字符 m_character;我的数据类型; 我想使用 boost::serialization 来序列化这个数据结构,然后使用 boost::asio 通过 TCP/IP 传输它,然后让另一个应用程序接收数据并使用相同的 boost 库反序列化它. 我正在尝试关注 boost: ..
发布时间:2021-12-21 22:19:15 C/C++开发

boost asio 写/读向量

我无法从 boost asio 缓冲区读取向量.我有这个向量: std::vector积分; 我用 boost asio write 发送 boost::asio::write (socket, boost::asio::buffer(&new_buffers->points.front(), nr_points * 3 * sizeof (float))); 另一方面,我有: st ..
发布时间:2021-12-21 13:40:57 C/C++开发

如何获取 boost::asio::ip::tcp::socket 的 IP 地址?

我正在使用 Boost ASIO 库用 C++ 编写服务器.我想在我的服务器日志中显示客户端 IP 的字符串表示.有人知道怎么做吗? 解决方案 socket 有一个函数可以检索远程端点.我会尝试一下这个(长的)命令链,它们应该检索远程端 IP 地址的字符串表示: asio::ip::tcp::socket socket(io_service);//在这里做你所有的接受和其他事情.asio ..
发布时间:2021-12-20 10:46:41 C/C++开发

使用 boost::asio 发送 Protobuf 消息

我正在尝试使用 Google 的协议缓冲区和 boost::asio 在 C++ 中一起破解客户端. 我的问题是我不知道如何将 protobuf 消息提供给 asio.我有的是这个: //设置 *sock - 有效玩家信息;info.set_name(name);//其他的东西 现在我知道以下是错误的,但我还是会发布: size_t request_length = info.Byte ..
发布时间:2021-12-20 10:34:09 C/C++开发

Boost::Asio : io_service.run() vs poll() 或者我如何在 mainloop 中集成 boost::asio

我目前第一次尝试将 boost::asio 用于一些简单的 tcp 网络,但我已经遇到了一些我不确定如何处理的问题.据我了解 io_service.run() 方法基本上是一个循环,它会一直运行直到没有其他事情要做,这意味着它会一直运行直到我释放我的小服务器对象.由于我已经设置了某种主循环,为了简单起见,我宁愿从那里手动更新网络循环,而且我认为 io_service.poll() 会做我想做的事, ..
发布时间:2021-12-20 10:02:32 C/C++开发

boost::asio + std::future - 关闭套接字后访问冲突

我正在编写一个简单的 tcp 客户端来发送和接收单行文本.异步操作由 std::future 处理,以促进具有超时的阻塞查询.不幸的是,我的测试应用程序在破坏服务器对象时因访问冲突而崩溃.这是我的代码: TCPClient.hpp #ifndef __TCPCLIENT_H__#define __TCPCLIENT_H__#include #include #include #includ ..
发布时间:2021-12-14 20:37:21 C/C++开发

需要对同步与异步 asio 操作进行一些说明

据我所知,同步和异步操作之间的主要区别(即write() or read() vs async_write()> 和 async_read()) 前者直到操作完成 - 或错误才返回,后者立即返回. 由于异步操作由 io_service.run() 控制,该操作在受控操作完成之前不会完成.在我看来,在使用 POP3 等协议的 TCP/IP 连接中涉及的顺序操作中,操作是一个序列,例如: C ..
发布时间:2021-12-14 20:31:15 C/C++开发