zoukankan      html  css  js  c++  java
  • Boost.Asio基础(三)

    Socket控制

    以下的函数进行处理一些高级的socket选项:

    • get_io_service():返回io_service实例
    • get_option(option):返回socket option对象
    • set_option(option):设置socket 选项
    • io_control(cmd):在socket上运行I/O命令

    以下是能够读取和设置的socket选项:

    名称 描写叙述 类型
    broadcast 为真,同意广播消息 bool
    debug 为真,启用socket级别的调试 bool
    do_not_route 为真,避免路由,而且仅仅使用本地接口 bool
    enable_connection_abort 为真。在accept()时将同意报告连接被终止 bool
    keep_alive 为真,发送保持连接 bool
    linger 为真,假设有没有发送的数据,在close之后,数据依旧保留 bool
    receive_buffer_size socket接收数据的缓冲区尺寸 int
    receive_low_watermark 设置处理socket输入的最小的字节数 int
    reuse_address 为真,socket能够被绑定到一个已经使用的地址 bool
    send_buffer_size socket的发送缓冲区尺寸 int
    send_low_watermark 处理socket发送的最小字节数 int
    ip::v6_only 为真。仅仅同意ipv6通信 bool

    样例:

    ip::tcp::endpoint ep(ip::address::from_string("127.0.0.1"), 80);
    ip::tcp::socket sock(service);
    sock.connect(ep);
    //TCP能够重用地址
    ip::tcp::socket::reuse_address ra(true);
    sock.set_option(ra);
    //获取socket的接收缓冲区大小
    ip::tcp::socket::receive_buffer_size rbs;
    sock.get_option(rbs);
    std::cout<<rbs.value()<<std::endl;
    //设置socket的缓冲区大小为8192
    ip::tcp::socket::send_buffer_size sbs(8192);
    sock.set_option(sbs);
  • 相关阅读:
    ➡️➡️➡️IELTS reading by Simon on Bili
    lc0502
    lc0331
    lc0329
    lc0327
    lc0326
    lc0324
    lc0320
    lc0319
    lc0316
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5195148.html
Copyright © 2011-2022 走看看