码迷,mamicode.com
首页 > 其他好文 > 详细

Boost.Asio基础(三)

时间:2016-02-17 14:35:05      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

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);

Boost.Asio基础(三)

标签:

原文地址:http://www.cnblogs.com/mengfanrong/p/5195148.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!