boost::asio 序列18:basic_socket_acceptor

本文详细探讨了Boost.Asio库中的basic_socket_acceptor组件,它是用于监听和接受连接请求的关键工具。通过实例,我们展示了如何设置acceptor,监听指定端口,并接收新的客户端连接。同时,我们讨论了异步接受操作,以及如何在多线程环境中有效地使用basic_socket_acceptor来构建高性能的网络服务器。
摘要由CSDN通过智能技术生成

explicit basic_socket_acceptor(const executor_type& ex)

  template <typename ExecutionContext>
  explicit basic_socket_acceptor(ExecutionContext& context,
      typename enable_if<
        is_convertible<ExecutionContext&, execution_context&>::value
      >::type* = 0)

创建&未打开acceptor(未打开的含义是,不能进行监听接受新的连接)

basic_socket_acceptor(const executor_type& ex, const protocol_type& protocol)

  template <typename ExecutionContext>
  basic_socket_acceptor(ExecutionContext& context,
      const protocol_type& protocol,
      typename enable_if<
        is_convertible<ExecutionContext&, execution_context&>::value
      >::type* = 0)

创建&打开acceptor

  basic_socket_acceptor(const executor_type& ex,
      const endpoint_type& endpoint, bool reuse_addr = true)

  template <typename ExecutionContext>
  basic_socket_acceptor(ExecutionContext& context,
      const endpoint_type& endpoint, bool reuse_addr = true,
      typename enable_if<
        is_convertible<ExecutionContext&, execution_context&>::value
      >::type* = 0)

创建&打开&监听指定的endpoint

  basic_socket_acceptor(const executor_type& ex,
      const protocol_type& protocol, const native_handle_type& native_acceptor)

  template <typename ExecutionContext>
  basic_socket_acceptor(ExecutionContext& context,
      const protocol_type& protocol, const native_handle_type& native_acceptor,
      typename enable_if<
        is_convertible<ExecutionContext&, execution_context&>::value
      >::type* = 0)

对原生socket创建acceptor

basic_socket_acceptor(basic_socket_acceptor&& other)

basic_socket_acceptor& operator=(basic_socket_acceptor&& other)

  template <typename Protocol1, typename Executor1>
  basic_socket_acceptor(basic_socket_acceptor<Protocol1, Executor1>&& other,
      typename enable_if<
        is_convertible<Protocol1, Protocol>::value
          && is_convertible<Executor1, Executor>::value
      >::type* = 0)

  template <typename Protocol1, typename Executor1>
  typename enable_if<
    is_convertible<Protocol1, Protocol>::value
      && is_convertible<Executor1, Executor>::value,
    basic_socket_acceptor&
  >::type operator=(basic_socket_acceptor<Protocol1, Executor1>&& other)

支持移动构造函数时,可用
 executor_type get_executor() 获取执行器

void open(const protocol_type& protocol = protocol_type())

  BOOST_ASIO_SYNC_OP_VOID open(const protocol_type& protocol,
      boost::system::error_code& ec)

打开指定的协议的acceptor

  void assign(const protocol_type& protocol,
      const native_handle_type& native_acceptor)

  BOOST_ASIO_SYNC_OP_VOID assign(const protocol_type& protocol,
      const native_handle_type& native_acceptor, boost::system::error_code& ec)

原生acceptor创建acceptor socket
 bool is_open() 确定acceptor socket是否打开

void bind(const endpoint_type& endpoint)

  BOOST_ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint,
      boost::system::error_code& ec)

绑定acceptor到指定的local endpoint

 void listen(int backlog = socket_base::max_listen_connections)

BOOST_ASIO_SYNC_OP_VOID listen(int backlog, boost::system::error_code& ec)

阻塞式监听

void close()

BOOST_ASIO_SYNC_OP_VOID close(boost::system::error_code& ec)

关闭acceptor socket

native_handle_type release()

native_handle_type release(boost::system::error_code& ec)

释放对原生acceptor的控制
native_handle_type native_handle() 获取原生acceptor

 void cancel()

BOOST_ASIO_SYNC_OP_VOID cancel(boost::system::error_code& ec)

取消异步操作
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值