boost-asio相关内容
我正在尝试从 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
..
我有一个在 boost 1.55 asio 中编写的小型 ssl 客户端,我想弄清楚为什么 boost::asio::ssl::stream::async_shutdown()总是失败.客户端与 boost 文档中的 ssl 客户端示例非常相似(几乎相同),因为它通过 boost::asio::ip::tcp::resolver::async_resolve()-> boost::asio::ss
..
通过阅读其他 Stack Overflow 条目和 boost::asio 文档,我确认没有同步 ASIO 读/写调用也提供易于使用的超时作为调用的参数. 我正在使用使用超时的 select(2) 调用转换老式 Linux 套接字应用程序,我需要或多或少地做同样的事情. 那么在 boost::asio 中执行此操作的最佳方法是什么?查看 asio 文档,有许多与计时器有关的各种事情的令
..
我的客户端应用程序使用 boost::asio::ip::tcp::socket 连接到远程服务器.如果应用失去与该服务器的连接(例如,由于服务器崩溃或关闭),我希望它定期尝试重新连接,直到成功. 我需要在客户端做什么才能干净地处理断开连接、整理然后反复尝试重新连接? 目前我的代码中有趣的部分看起来像这样. 我connect是这样的: bool MyClient::myconn
..
我正在用 boost TCP 编写一个客户端/服务器程序,其中我想每 2 秒向客户端发送一次 HEARTBEAT 消息,我正在尝试创建一个新线程,通过它我可以轻松地发送它但无法解决它.我正在使用 boost::thread t(hearbeatSender,sock); 创建线程.但给出了很多错误.我也使用 bind 将函数名与套接字绑定,但没有解决错误. void process(boost:
..
我有一个使用 ZeroMQ 进行消息传递的 C++ 应用程序.但它还必须为基于 AJAX/Comet 的 Web 服务提供 SGCI 连接. 为此,我需要一个普通的 TCP 套接字.我可以通过普通的 Posix 套接字做到这一点,但为了保持跨平台的便携性并使我的生活更轻松(我希望......)我正在考虑使用 Boost::ASIO. 但现在我有 ZMQ 的冲突,想要使用它自己的 zmq
..
我正在开发一个多线程应用程序,其中一个线程充当从客户端接收命令的 tcp 服务器.该线程使用 Boost 套接字和接受器等待客户端连接,从客户端接收命令,将命令传递给应用程序的其余部分,然后再次等待.代码如下: void ServerThreadFunc(){使用 boost::asio::ip::tcp;boost::asio::io_service io_service;tcp::accep
..
有没有办法取消挂起的操作(无需断开连接)或为 boost 库函数设置超时? 即我想在 boost asio 中设置阻塞套接字超时? socket.read_some(boost::asio::buffer(pData, maxSize), error_); 示例:我想从套接字中读取一些内容,但如果 10 秒过去了,我想抛出一个错误. 解决方案 在 Linux/BSD 下,
..
我在具有多个网络接口的主机之间使用多播 UDP.我正在使用 boost::asio,并且对接收者必须执行的 2 个操作感到困惑:绑定,然后加入组. 为什么需要在绑定期间指定接口的本地地址,当您对加入的每个多播组执行此操作时? 姊妹问题关于多播端口:因为在发送期间,您发送到多播地址 &端口,为什么,在订阅多播组期间,您只指定地址,而不是端口 - 在对绑定的混淆调用中指定的端口. 注
..
我正在寻找现代 C++ HTTP 库,因为 C++ 包装器很难解决 libcurl 的缺点.首选基于 Boost.ASIO(已成为事实上的 C++ TCP 库)的解决方案. 解决方案 有一天有人在 另一个线程: http://cpp-netlib.github.com/ 我认为这与您会发现的一样高,但我不确定它是否足够成熟(我会说这可能是因为他们已经提议将其用于 Boost 包
..
我正在审核 HTTP 服务器 3 Boost 网站上的示例. 你们能解释一下为什么每个连接都需要 strand 吗?正如我所看到的,我们只在读取事件的处理程序中调用 read_some.所以基本上 read_some 调用是连续的,因此不需要链(和 第 3 段的第 2 项 说同样的话).多线程环境的风险在哪里? 解决方案 文档是正确的.使用半双工协议实现,例如 HTTP Server
..
这是我的实现: 客户端 A 向客户端 B 发送消息 服务器通过 async_read 适当的数据量来处理消息将等待来自客户端 A 的新数据(为了不阻止客户端 A) 之后Server会处理信息(可能会做一个mysql查询),然后使用 async_write 将消息发送到客户端 B. 问题是,如果客户端 A 发送消息的速度非常快,async_writes 将在调用前一个 async_w
..
我是第一次开始使用 Boost,详情: 我使用的是 Visual Studio 2008 SP1 我正在进行 x64 构建 我只使用 boost::asio(以及它具有的任何依赖项) 我的代码现在可以编译了,我将我的项目指向了 boost 库(在构建了 x64 库之后)并解决了一些简单的问题,现在我面临链接器错误: 2>BaseWebServer.obj : error LNK2
..
我正在使用 Boost ASIO 通过以太网连接到带有以太网屏蔽的 Arduino Nano.这是 Arduino 设置: #include ether.staticSetup("10.0.0.4", "10.0.0.1");ether.udpServerListenOnPort(&callback_function, 1337); 这是我连接到它的 C++ 代码: 标题 #inclu
..
我正在编写一个 C++ 程序,用于使用 boost::asio 通过串行端口与 Arduino 通信.建立连接后,Arduino 会自行重置.然而,C++ 程序的输入缓冲区仍然包含从 Arduino 发送的旧数据.由于我对这些数据没有用,我想清除输入缓冲区.我如何使用 boost::asio 实现这一点? 我的代码目前是这样的: #include #include #include 使用命
..
有谁知道一个好的 boost asio 架构文档?我在 boost::documentation 中找到的所有内容都是关于 api 以及如何使用它们.我想更深入地了解它们背后的概念. 如果我忽略了 boost 文档,请告诉我正确的资源. 解决方案 以下是 Michael Caisse 在 BoostCon 2010 上的演示文稿中的一些幻灯片:ASIO 入门 以下是迈克尔的
..
目前我正在使用设计,当服务器读取流的前 4 个字节然后在标头解码后读取 N 个字节. 但我发现第一次 async_read 和第二次读取之间的时间是 3-4 毫秒.我刚刚从回调中打印了控制台时间戳以进行测量.我总共发送了 10 个字节的数据.为什么要花这么多时间阅读? 我在调试模式下运行它,但我认为调试的 1 个连接是在从套接字读取之间没有 3 毫秒的延迟.也许我需要另一种在“数据包"
..
我正在使用 boost 编写一个串行库,我有一个枚举: enum parity_t { PARITY_NONE, PARITY_ODD, PARITY_EVEN }; 我收到如下错误: 错误 1 错误 C2059:语法错误:'(' 我无法弄清楚是什么问题.然后我和我的朋友尝试了: void PARITY_NONE(); 我们得到了这些错误: 错误 1 错误 C21
..
我一直在使用同一网站上发布的以下示例.这是我的版本.(请原谅我缺乏 C 套接字编程经验:) 在构造函数中: server::server(io_service& io_service, const int port) :udpsocket_(io_service, udp::endpoint(udp::v4(), port))) {int sock = udpsocket_.native
..
我正在尝试使用 boost::asio 来实现一个简单的设备发现协议.基本上我想发送一个带有 2 字节负载的广播消息(端口 9000).然后从设备读取响应(假设当前它存在).在wireshark中,我可以看到广播已发送并且设备正在响应.但是,在我的示例代码中,我得到在 UDP 读取中返回的字节为 0,而不是 30 字节的数据. 没有.时间源目的协议长度1 0.00000 192.168.0.20
..