boost-asio

    0热度

    1回答

    我想接受线程0中的连接,然后将此套接字发布到其他线程(1 - 31)之一以进行负载均衡,然后我希望此套接字的所有其他操作都将位于同一线程中,通过使用协程 - 至避免线程上下文切换 g。 我想用io_service + work + vector<boost::thread>上进行负载平衡不同的线程执行异步回调。 但是与此同时我想通过在同一个线程内使用协程来执行所有其他的操作 - 没有负载平衡和快速

    2热度

    2回答

    我正在尝试使用boost::asio开发简单的SSL客户端服务器应用程序。 我已经下载,编译并运行ssl客户端服务器的升级示例。尽管如此,在上述例子中,证书必须作为硬盘中的文件提供给客户端。我想避免这种情况。 据我所知,在SSL协议中,服务器可以向客户端发送其证书。然后,客户端在整个会话期间使用该证书。 如何使用boost::asio库实现上述功能? 编辑 我希望有一个客户端,并不需要这样做: c

    0热度

    1回答

    我使用的boost :: ASIO,有8个线程 boost::asio::io_service ios; boost::asio::ip::tcp::acceptor(ios); boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port); acceptor.open(endpoint.protoco

    1热度

    1回答

    我想使用asio从串行设备读取数据并在字节可用时处理字节。 当使用async_read_until时,由于文件结束(EOF)错误,我的回调函数大部分时间被调用。因此,我需要退出回调并重新注册,直到数据可用。这导致了一个忙碌的循环,我想阻止这个循环。类似的情况发生在read_until,它立即以相同的EOF错误返回。 对于POSIX,有poll有效等待,直到设备上的数据可用,但我宁愿使用便携式(包括

    2热度

    3回答

    我正在开发一个使用boost asio的HTTP服务器。到目前为止,我一直在使用异步操作(aync_read,async_write等),但我想让我的服务器是并发的,即与为每个连接的新客户端创建新线程的服务器相同。 我读过一些论坛等,显然,一个并发服务器只能通过使用提到的异步操作。 我不明白这怎么可能。 我的意思是,考虑到异步操作的处理程序在调用io_service.run()的线程中执行,让我们

    1热度

    1回答

    我知道同一个套接字对象的方法的并发调用会导致未定义的行为。 但在调用第一个调用的完成处理程序之前调用异步操作并再次调用它(非并发)呢? 说,什么是以下(如有)预期的行为: boost::asio::ip::udp::socket socket; // make socket join a multicast group, for instance socket.async_receive(

    3热度

    1回答

    我正在创建一个客户端套接字。 为了让我的测试人员更容易,我想指定套接字将使用的网卡和端口。 昨天,我在谷歌搜索,我发现:Binding boost asio to local tcp endpoint 通过执行公开,绑定和async_connect,我能够绑定到特定的网络卡,我开始看到在Wireshark的交通。 但是,Wireshark报告说套接字已被赋予一个随机端口而不是我指定的端口。我想如果

    1热度

    1回答

    我实现了两个简单的客户端和服务器示例,但它不起作用。客户端和服务器都冻结而没有任何消息打印。 client.cpp int main(int argc, char * argv[]) { std::string raw_ip = "127.0.0.1"; int port = 3333; try { asio::ip::tcp::endpoint ep(as

    0热度

    1回答

    我不明白如何关闭boost::asio ssl套接字。我尝试了几种方法,但总是会在某个时刻提出Segmentation fault。 我一直在阅读了下面的帖子来解决这种情况: boost asio ssl async_shutdown always finishes with an error? 具体来说,我想实现的 甲方启动关闭(),并等待乙方与一个 回应shutdown() 请注意,客户端和服

    0热度

    1回答

    我想写一个调用boost :: asio操作的库模块。根据结果​​,该模块将被应用程序逻辑层用于进一步处理。 我的要求很简单明了。我需要的是能够在下面的Util类中指定一个回调函数fn,它可以使用任何函数ptr或boost :: bind(member fn)或其他函数,并在异步代码完成后调用该回调函数。 class Util { public: void sendMsg(co