套接字集选项说明

时间:2012-09-23 18:18:26

标签: c++ boost boost-asio

我有一小段代码

boost::asio::ip::tcp::no_delay option(true);
boost::asio::ip::tcp::socket* sock = new boost::asio::ip::tcp::socket(ios);
sock->set_option(option);
_session_acceptor.async_accept(*sock, 
                boost::bind(&server::playerAccept, this, sock, boost::asio::placeholders::error));

如果我在接受服务器之前在套接字上调用set_option,则不接受任何连接。但是如果我在接受连接后呼叫set_option。有什么魔法吗?

1 个答案:

答案 0 :(得分:4)

您应该在接受者上调用set_option,而不是套接字。我的项目示例:

 Listener::Listener(int port)
            : acceptor(io, ip::tcp::endpoint(ip::tcp::v4(), port))
            , socket(io) {
    boost::asio::ip::tcp::no_delay opt_nodelay(true);
    acceptor.set_option(opt_nodelay);
    start_accept();
相关问题