【问题标题】:Boost Threaded socketsBoost 螺纹插座
【发布时间】:2012-04-26 13:33:30
【问题描述】:

只是想知道是否有人可以指出一些简单的代码,显示多线程 boost::tcp::socket 是多线程的,不能在父 I.E. 创建的同一个套接字上工作

while (TRUE){
    create server
    create shared_ptr io_service
    create shared_ptr socket
    create acceptor 
    create endpoint

    bind to ip and port
    listen
    accept(bind etc)
    create thread pool with function passing the ONE socket

    //do work in thread close the socket
}

【问题讨论】:

  • Boost Asio 是多线程的。您只需在多个线程中运行io_service::run()
  • 我看过它们,它们都使用相同的套接字。我希望它在多个线程中使用多个套接字你知道 boost 使用多个套接字的具体例子吗?

标签: c++ multithreading boost boost-asio


【解决方案1】:

我找到了问题的根本原因是我没有意识到使用 boost 可以将多个套接字绑定到同一个端口

acceptor->set_option( boost::asio::ip::tcp::acceptor::reuse_address( true ) );

这对我帮助很大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 2011-04-01
    • 2011-05-01
    • 1970-01-01
    相关资源
    最近更新 更多