美文网首页
接收连接basic_socket_acceptor

接收连接basic_socket_acceptor

作者: 长不胖的Garfield | 来源:发表于2017-01-19 21:43 被阅读0次

概述

TCP有一处和UDP不同的地方是TCP是面向连接的,TCP有建立连接、通信、关闭连接的操作,Boost.Asio提供了ip::tcp::acceptor用来接收新的TCP连接,底层由socket_acceptor_service提供连接服务, basic_socket_acceptor作为连接接收类模板,当由acceptor获取到远程连接socket后,即可使用socket进行后续通信操作。

操作步骤

  1. 使用io_service构造acceptor
  2. 打开acceptor
  3. 设置选项[可选]
  4. 绑定监听端口
  5. 开始监听
  6. 同步/异步接收连接
  7. 关闭

操作说明

basic_socket_acceptor针对每个步骤都提供了相应的方法,同时也提供了一些构造函数可以直接合并几个步骤的操作;

方法名 说明
open 打开acceptor
is_open 是否已打开
bind 绑定到指定端口,端口应该为本地端口
listen 监听指定端口
close 关闭acceptor,任何异步accept会被立即取消,再次使用必须再调用open
cancel 取消acceptor上的异步操作,会引起异步连接、发送、接收操作的立即完成,错误码为error::operation_aborted
set_option 设置选项
get_option 获取选项
accept 同步连接获取
async_accept 异步连接获取

使用方法

通常情况下,如果在构造时指定要绑定的本地端口,即可直接进行accept操作,譬如:

tcp::accptor acceptor(io_service,endpoint,reuse_addr);

acceptor.accept(socket,ec);

如果构造时没有提供本地端口,则需要进行打开、绑定、监听等动作之后才可以进行accept操作,譬如:

tcp::acceptor acceptor(io_service);
acceptor.open(endpoint.protocol());
if (reuse_addr)
   acceptor.set_option(socket_base::reuse_address(true));
acceptor.bind(endpoint);
acceptor.listen(listen_backlog);

acceptor.accept(socket,ec);

相关文章

  • 接收连接basic_socket_acceptor

    概述 TCP有一处和UDP不同的地方是TCP是面向连接的,TCP有建立连接、通信、关闭连接的操作,Boost.As...

  • HTTP 之 一次完整的http请求处理过程

    http请求处理过程如下 .1、建立连接:接收或拒绝连接请求,通过三次握手建立 .2、接收请求:接收客户端请求报文...

  • 罗技M590蓝牙连接

    1)首次连接 接收器没有连接到电脑上。 鼠标和键盘装上电池。 把接收器插上电脑。 鼠标与接收器对码(接收器一定要接...

  • HTTP原理

    (1)建立连接:接收或拒绝连接请求 (2)接收请求: 接收客户端请求报文中对某资源的一次请求的过程 (3)处理请求...

  • httpd基础(1)

    httpd服务器请求处理过程: 1、建立连接:接收或拒绝连接请求2、接收请求:接收客户端请求报文中对某资源的一次请...

  • socket连接 发送接收

    In [66]: s = socket.socket() In [67]: s.connect(("132.77....

  • 计算机网络

    1、TCP的连接和释放连接? 连接建立的过程: ·Client向Server发送连接请求 ·Server接收到Cl...

  • Socket的函数解析

    //客户端socket在接收数据时,有两种超时:1.连接服务器超时,即连接超时;2.连接服务器成功后,接收服务器数...

  • Erlang 各种 Socket 服务器 Demo

    TCP Echo server(只接收一次连接): TCP Echo server(接受多次连接,处理完一个连接后...

  • Serial串口通信

    1、SerialClass 2、连接串口 3、底层串口数据接收

网友评论

      本文标题:接收连接basic_socket_acceptor

      本文链接:https://www.haomeiwen.com/subject/chzibttx.html