草庐IT

asio-acceptor

全部标签

c++ - Boost::asio 这种奇怪的编码风格是什么?

我正准备在我的boostasio套接字通信中调试一些东西。并在asio库中找到了这段代码(在boost/asio/impl/write.hpp第169行(boost1.47)中找到):switch(start){case1:buffers_.prepare(this->check_for_completion(ec,total_transferred_));for(;;){stream_.async_write_some(buffers_,BOOST_ASIO_MOVE_CAST(write_op)(*this));return;default:total_transferred_+=

c++ - SSL 证书和 Boost asio

您好,我正在尝试通过C++从使用https的网页下载内容。我从Boostasio示例中获取的非常基本的客户端程序编译并运行良好,但是当我使用Google测试它时:www.google.co.uk/?gws_rd=ssl,它给我错误“握手:证书验证失败”.我认为这是因为ctx.set_default_verify_paths()不包含带有Google证书的路径(我在Windows上)。我是SSL的新手,请您帮我解决以下问题:1)当我安装openSSL时,它是否在我的计算机上粘贴了一份受信任的证书颁发机构列表?如果是,什么会导致Google的证书无法通过验证?2)有没有人说我不关心验证,无

c++ - 我如何只使用 Boost 库的 Asio?

我如何仅使用Boost库的Asio而不添加任何其他库?这可能吗?在Boost中,没有包含*.a文件的名为“lib”的文件夹? 最佳答案 Asio作为独立库存在,完全独立于Boost(这是“原始”)。如果您不想使用Boost,则无需从Boost子目录中一起搜索位,只需下载Asio并使用它。:-) 关于c++-我如何只使用Boost库的Asio?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

c++ - 安全地取消 boost asio 截止时间计时器

我正在尝试取消boost::asio::basic_waitable_timer安全。根据这个answer,这段代码应该完成这项工作:timer.get_io_service().post([&]{timer.cancel();})恐怕它对我不起作用。我做错了什么吗?这是我的代码:#include#include"boost/asio.hpp"#include#include#includeboost::asio::io_serviceio_service;boost::asio::basic_waitable_timertimer(io_service);std::atomicsta

c++ - Boost::Asio 读/写操作

调用boost::asio::ip::tcp::socket的read_some/write_some成员函数有什么区别并调用boost::asio::read/boost::asio::write自由函数?更具体地说:使用一个比另一个有什么好处吗?为什么两者都包含在库中? 最佳答案 read_some和write_some可能会在传输一个字节后立即返回。因此,如果您想确保获得所有数据,则需要循环-但这可能就是您想要的。自由函数是read_some和write_some的包装器,根据重载有不同的终止条件。通常他们等待缓冲区完全传输(

c++ - boost asio 和 endian

我不知道,boostasio是否处理字节序? 最佳答案 Asio确实将端口之类的东西转换为网络顺序。转换函数不作为官方接口(interface)的一部分公开,而是隐藏在detail命名空间中(例如boost::asio::detail::socket_ops::host_to_network_short). 关于c++-boostasio和endian,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

c++ - 如何破译 boost asio ssl 错误代码?

我在boostasiossl实现中偶尔会遇到通信失败,boost返回的super有用的错误消息是“asio.ssl:336458004”我怀疑数字是某种由SSL标志组成的聚合结构,我说是因为linux错误代码、boostasio错误代码和ssl错误代码没有任何对“336458004”的引用,所以大概它必须是动态构建的。任何人都可以提供一些关于我应该如何破译此错误代码的见解吗?谢谢。 最佳答案 他们使用来自crypto/err/err.h的ERR_PACK这将允许将错误转换为字符串#includestd::stringerr=erro

c++ - 无法从 boost::asio::io_service::run 捕获异常

我在boost::asio上有一个TCP服务器,它监听连接并在获取连接后开始使用boost::asio::write在循环中发送数据block。boolTcpServer::StartTcpServer(std::shared_ptrio_service){m_ioservice=io_service;m_acceptor.reset(newboost::asio::ip::tcp::acceptor(*m_ioservice,boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(),m_port)));m_socket=std

c++ - 我什么时候调用 boost::asio::streambuf::consume() 和 boost::asio::streambuf::commit()?

我试图理解boost::asio::streambuf::consume()和boost::asio::streambuf::commit()调用.在文档中,我们有示例,boost::asio::streambufb;std::ostreamos(&b);os和boost::asio::streambufb;//reserve512bytesinoutputsequenceboost::asio::streambuf::mutable_buffers_typebufs=b.prepare(512);size_tn=sock.receive(bufs);//receiveddatais"

c++ - boost::asio 通过 SocketCAN

我正在考虑使用BoostAsio从SocketCAN中读取数据.linux/can.h没什么特别的,并且设备应该表现得像环回接口(interface),并与原始套接字一起使用。查看basic_raw_socket接口(interface)似乎我可以利用basic_raw_socket::assign分配使用创建的native套接字socket(PF_CAN,SOCK_RAW,CAN_RAW);这是我目前的情况namespacecan{classCanSocket{public:typedefboost::asio::ip::basic_endpointendpoint;typedefb