boost-asio

    1热度

    2回答

    我有一个类'TcpCom',其中我想将boost.asio tcp套接字作为类成员,以便所有类函数不必采取在一个TCP套接字中作为一个参数(打破了'COM'基类的通用设计,我试图做)。然而,我对如何在类的成员初始化列表中正确初始化套接字感到困惑。 ,通常要使用创建: boost::asio::io_service io_service; boost::asio::ip::tcp::socket

    1热度

    1回答

    我正在使用boost来实现TCP客户端和服务器。在客户端,我必须一个接一个地发送多个文件。我使用单独的机制来通知服务器文件传输。如果服务器准备好接收文件,它将响应客户端并启动传输。 我定义异步处理程序写入数据,然后让OS通过调用io_service.run()照顾它。据我所知,io_service.run()阻塞,直到没有更多的处理程序被分派,但这并不意味着数据实际上在远程端收到了正确的?问题是在

    0热度

    1回答

    我想写一个简单的客户端发布一个UDP消息到服务器。我的缓冲区不是作为udp发送的。当我尝试将消息发送到netcat时,它不会出现。 #include <iostream> #include <boost/array.hpp> #include <boost/asio.hpp> #include <boost/lexical_cast.hpp> #include <boost/thread.

    2热度

    1回答

    捕获此和shared_from_this()在升压async-tcp-echo-server例子有一个服务器类上一个新的连接创建会话: acceptor.async_accept(socket, [this](boost::system::error_code ec) { if (!ec) std::make_shared<session>(std::move(socket)

    1热度

    1回答

    我有下面的代码,这是从我真正的代码简化,我试图做一个async_read连接到子进程的async_pipe。在孩子的过程中,我打电话给“ls”。只是一个测试,我希望我的异步阅读获得结果。它返回以下内容 $ ./a.out system:0 0 为什么会发生这种情况我找不出来?理想情况下,我想替换“ls”。有一个长时间的运行过程,我可以在线阅读async_read。 #include <bo

    2热度

    1回答

    我有以下最小的示例代码。我想要做的是: 在一个单独的线程中,启动一个boost::asio::deadline_timer,以便每调用一个函数loop,就会完成一些操作,定时器会自行重新设置,直到无穷大。 #include <iostream> #include <boost/asio.hpp> #include <boost/thread/thread.hpp> void wait(in

    1热度

    1回答

    我有一个关于使用boost asio的async_read_until的常见问题。该文档说,当处理程序被调用时,缓冲区内可能有更多的数据。有没有什么办法可以解决这个问题,并在序列条件匹配后立即停止缓冲区从套接字中消耗字节?

    2热度

    1回答

    我想创建一个异步函数,它将最后一个参数boost :: asio :: yield_context作为参数。例如: - int async_meaning_of_life(asio::yield_context yield); 我也想与短耳如何返回错误代码是一致的。也就是说,如果用户确实: int result = async_meaning_of_life(yield); 和函数调用失败

    2热度

    1回答

    开始我的程序时,我需要检索运行它的机器的本地(LAN)地址。我这样做的方式如下: try { asio::io_service ioService; asio::udp::resolver resolver(ioService); asio::udp::query lanQuery(asio::udp::v4(), asio::ip::host_name(), "")

    2热度

    1回答

    我很好奇,如果在Boost ASIO中使用异步读取功能相比于使用单独读取同步的线程有任何性能优势。用例将不得不始终监听来自远程主机的数据。 在异步情况下,我相信ioservice.run()会阻塞线程,直到有数据被读取。在同步的情况下,boost :: asio:read调用会阻塞,直到有数据被读取。使用异步读取有什么好处吗?看起来如果应用程序在等待数据时需要在后台执行任何操作,那么在使用asyn