首页 > 其他 > 详细

Boost.Asio基础(三)

时间:2015-03-17 00:48:17      阅读:397      评论: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://blog.csdn.net/shangguanwaner/article/details/44318013

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!