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