boost-asio相关内容

异常运行 boost asio ssl 示例

我正在尝试从 boost::asio 运行 SSL 示例,但在运行它们时出现“无效参数"异常.我使用的是 Linux x86_64. http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp http://www.boost.org/doc/libs/1_46_1/doc/html/b ..
发布时间:2021-12-14 14:46:49 服务器开发

C++ Boost ASIO:如何读/写超时?

通过阅读其他 Stack Overflow 条目和 boost::asio 文档,我确认没有同步 ASIO 读/写调用也提供易于使用的超时作为调用的参数. 我正在使用使用超时的 select(2) 调用转换老式 Linux 套接字应用程序,我需要或多或少地做同样的事情. 那么在 boost::asio 中执行此操作的最佳方法是什么?查看 asio 文档,有许多与计时器有关的各种事情的令 ..
发布时间:2021-12-11 12:02:45 C/C++开发

如何在断开连接后干净地重新连接 boost::socket?

我的客户端应用程序使用 boost::asio::ip::tcp::socket 连接到远程服务器.如果应用失去与该服务器的连接(例如,由于服务器崩溃或关闭),我希望它定期尝试重新连接,直到成功. 我需要在客户端做什么才能干净地处理断开连接、整理然后反复尝试重新连接? 目前我的代码中有趣的部分看起来像这样. 我connect是这样的: bool MyClient::myconn ..
发布时间:2021-12-11 12:01:41 C/C++开发

如何将 boost asio tcp 套接字传递给线程以将心跳发送到客户端或服务器

我正在用 boost TCP 编写一个客户端/服务器程序,其中我想每 2 秒向客户端发送一次 HEARTBEAT 消息,我正在尝试创建一个新线程,通过它我可以轻松地发送它但无法解决它.我正在使用 boost::thread t(hearbeatSender,sock); 创建线程.但给出了很多错误.我也使用 bind 将函数名与套接字绑定,但没有解决错误. void process(boost: ..
发布时间:2021-12-11 11:54:33 C/C++开发

将 ZeroMQ 与 Boost::ASIO 一起使用

我有一个使用 ZeroMQ 进行消息传递的 C++ 应用程序.但它还必须为基于 AJAX/Comet 的 Web 服务提供 SGCI 连接. 为此,我需要一个普通的 TCP 套接字.我可以通过普通的 Posix 套接字做到这一点,但为了保持跨平台的便携性并使我的生活更轻松(我希望......)我正在考虑使用 Boost::ASIO. 但现在我有 ZMQ 的冲突,想要使用它自己的 zmq ..
发布时间:2021-12-11 11:44:56 C/C++开发

Boost::asio - 如何中断被阻塞的 tcp 服务器线程?

我正在开发一个多线程应用程序,其中一个线程充当从客户端接收命令的 tcp 服务器.该线程使用 Boost 套接字和接受器等待客户端连接,从客户端接收命令,将命令传递给应用程序的其余部分,然后再次等待.代码如下: void ServerThreadFunc(){使用 boost::asio::ip::tcp;boost::asio::io_service io_service;tcp::accep ..
发布时间:2021-12-11 11:19:30 C/C++开发

如何在 boost asio 中设置阻塞套接字超时?

有没有办法取消挂起的操作(无需断开连接)或为 boost 库函数设置超时? 即我想在 boost asio 中设置阻塞套接字超时? socket.read_some(boost::asio::buffer(pData, maxSize), error_); 示例:我想从套接字中读取一些内容,但如果 10 秒过去了,我想抛出一个错误. 解决方案 在 Linux/BSD 下, ..
发布时间:2021-12-11 11:07:20 C/C++开发

绑定多播 (UDP) 套接字是什么意思?

我在具有多个网络接口的主机之间使用多播 UDP.我正在使用 boost::asio,并且对接收者必须执行的 2 个操作感到困惑:绑定,然后加入组. 为什么需要在绑定期间指定接口的本地地址,当您对加入的每个多播组执行此操作时? 姊妹问题关于多播端口:因为在发送期间,您发送到多播地址 &端口,为什么,在订阅多播组期间,您只指定地址,而不是端口 - 在对绑定的混淆调用中指定的端口. 注 ..
发布时间:2021-12-11 11:05:22 其他开发

基于 Boost.ASIO 的 HTTP 客户端库(如 libcurl)

我正在寻找现代 C++ HTTP 库,因为 C++ 包装器很难解决 libcurl 的缺点.首选基于 Boost.ASIO(已成为事实上的 C++ TCP 库)的解决方案. 解决方案 有一天有人在 另一个线程: http://cpp-netlib.github.com/ 我认为这与您会发现的一样高,但我不确定它是否足够成熟(我会说这可能是因为他们已经提议将其用于 Boost 包 ..
发布时间:2021-12-11 10:52:25 C/C++开发

为什么在使用 boost::asio 时每个连接都需要链?

我正在审核 HTTP 服务器 3 Boost 网站上的示例. 你们能解释一下为什么每个连接都需要 strand 吗?正如我所看到的,我们只在读取事件的处理程序中调用 read_some.所以基本上 read_some 调用是连续的,因此不需要链(和 第 3 段的第 2 项 说同样的话).多线程环境的风险在哪里? 解决方案 文档是正确的.使用半双工协议实现,例如 HTTP Server ..
发布时间:2021-12-01 15:15:25 C/C++开发

boost asio async_write :如何不交错 async_write 调用?

这是我的实现: 客户端 A 向客户端 B 发送消息 服务器通过 async_read 适当的数据量来处理消息将等待来自客户端 A 的新数据(为了不阻止客户端 A) 之后Server会处理信息(可能会做一个mysql查询),然后使用 async_write 将消息发送到客户端 B. 问题是,如果客户端 A 发送消息的速度非常快,async_writes 将在调用前一个 async_w ..
发布时间:2021-11-30 13:46:48 C/C++开发

Boost 链接器错误:未解析的外部符号 "class boost::system::error_category const &__cdecl boost::system::get_system_category(void)"

我是第一次开始使用 Boost,详情: 我使用的是 Visual Studio 2008 SP1 我正在进行 x64 构建 我只使用 boost::asio(以及它具有的任何依赖项) 我的代码现在可以编译了,我将我的项目指向了 boost 库(在构建了 x64 库之后)并解决了一些简单的问题,现在我面临链接器错误: 2>BaseWebServer.obj : error LNK2 ..
发布时间:2021-11-25 05:08:45 C/C++开发

UDP 连接总是成功

我正在使用 Boost ASIO 通过以太网连接到带有以太网屏蔽的 Arduino Nano.这是 Arduino 设置: #include ether.staticSetup("10.0.0.4", "10.0.0.1");ether.udpServerListenOnPort(&callback_function, 1337); 这是我连接到它的 C++ 代码: 标题 #inclu ..
发布时间:2021-11-17 04:07:55 C/C++开发

清除 boost::asio 中串口的输入数据

我正在编写一个 C++ 程序,用于使用 boost::asio 通过串行端口与 Arduino 通信.建立连接后,Arduino 会自行重置.然而,C++ 程序的输入缓冲区仍然包含从 Arduino 发送的旧数据.由于我对这些数据没有用,我想清除输入缓冲区.我如何使用 boost::asio 实现这一点? 我的代码目前是这样的: #include #include #include 使用命 ..
发布时间:2021-11-17 03:47:52 C/C++开发

Boost asio架构文档

有谁知道一个好的 boost asio 架构文档?我在 boost::documentation 中找到的所有内容都是关于 api 以及如何使用它们.我想更深入地了解它们背​​后的概念. 如果我忽略了 boost 文档,请告诉我正确的资源. 解决方案 以下是 Michael Caisse 在 BoostCon 2010 上的演示文稿中的一些幻灯片:ASIO 入门 以下是迈克尔的 ..
发布时间:2021-11-17 02:49:08 其他开发

boost::asio 异步服务器设计

目前我正在使用设计,当服务器读取流的前 4 个字节然后在标头解码后读取 N 个字节. 但我发现第一次 async_read 和第二次读取之间的时间是 3-4 毫秒.我刚刚从回调中打印了控制台时间戳以进行测量.我总共发送了 10 个字节的数据.为什么要花这么多时间阅读? 我在调试模式下运行它,但我认为调试的 1 个连接是在从套接字读取之间没有 3 毫秒的延迟.也许我需要另一种在“数据包" ..
发布时间:2021-11-17 01:54:39 C/C++开发

PARITY_NONE C++ Windows 中的关键字?

我正在使用 boost 编写一个串行库,我有一个枚举: enum parity_t { PARITY_NONE, PARITY_ODD, PARITY_EVEN }; 我收到如下错误: 错误 1 ​​错误 C2059:语法错误:'(' 我无法弄清楚是什么问题.然后我和我的朋友尝试了: void PARITY_NONE(); 我们得到了这些错误: 错误 1 ​​错误 C21 ..
发布时间:2021-09-18 20:40:37 C/C++开发

获取UDP数据包的目的地址

我一直在使用同一网站上发布的以下示例.这是我的版本.(请原谅我缺乏 C 套接字编程经验:) 在构造函数中: server::server(io_service& io_service, const int port) :udpsocket_(io_service, udp::endpoint(udp::v4(), port))) {int sock = udpsocket_.native ..
发布时间:2021-09-12 19:30:53 服务器开发

读取 boost::asio UDP 广播响应

我正在尝试使用 boost::asio 来实现一个简单的设备发现协议.基本上我想发送一个带有 2 字节负载的广播消息(端口 9000).然后从设备读取响应(假设当前它存在).在wireshark中,我可以看到广播已发送并且设备正在响应.但是,在我的示例代码中,我得到在 UDP 读取中返回的字节为 0,而不是 30 字节的数据. 没有.时间源目的协议长度1 0.00000 192.168.0.20 ..
发布时间:2021-09-12 19:29:26 C/C++开发