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);
Boost.Asio基础(三)的更多相关文章
- boost asio 学习(三)post与dispatch
http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting-started-with-boostasio?pg=4 本章节为io_ ...
- Boost.Asio基础(五) 异步编程初探
异步编程 本节深入讨论异步编程将遇到的若干问题.建议多次阅读,以便吃透这一节的内容,这一节是对整个boost.asio来说是非常重要的. 为什么须要异步 如前所述,通常同步编程要比异步编程更简单.同步 ...
- Boost.Asio基础
http://www.voidcn.com/article/p-exkmmuyn-po.html http://www.voidcn.com/article/p-xnxiwkrf-po.html ht ...
- boost asio 学习(一)io_service的基础
原文 http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting- started-with-boostasio/ 编译环境 b ...
- 01--c实现基础客户端和服务端与c++ boost.asio实现对比
c实现服务端和客户端交互: 学习查阅的博客: https://blog.csdn.net/u011068702/article/details/54380259 https://blog.csdn.n ...
- boost asio 学习(八) 网络基础 二进制写发送和接收
http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting- started-with-boostasio?pg=9 8. Net ...
- boost asio 学习(七) 网络基础 连接器和接收器(TCP示例)
http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting- started-with-boostasio?pg=8 7. Net ...
- boost.asio源码剖析(三) ---- 流程分析
* 常见流程分析之一(Tcp异步连接) 我们用一个简单的demo分析Tcp异步连接的流程: #include <iostream> #include <boost/asio.hpp& ...
- boost.asio源码剖析(四) ---- asio中的泛型概念(concepts)
* Protocol(通信协议) Protocol,是asio在网络编程方面最重要的一个concept.在第一章中的levelX类图中可以看到,所有提供网络相关功能的服务和I/O对象都需要Protoc ...
随机推荐
- iOS 10 创建iMessage App
原文作者 澳大利亚19岁少年--Davis Allie ----原文地址 时值中秋佳节, 送给出门在外的程序猿们 ! 骚年们, 自己写个表情包斗图可否 ! 斗-seal.svg.png 第一. 介绍 ...
- mysql安装详细步骤图解
本文转自http://blog.csdn.net/fanyunlei/article/details/21454645 别看图多,其实mysql的安装十分简单,一路next即可,只是注意倒数第三步,设 ...
- Lucence.Net+添加关键词+分页+排序
1.使用queryparser完成解析搜索请求 2.基本格式如: QueryParser parser=new QueryParser("字段名称","分析器实例&quo ...
- PrintWriter与outputStream区别
网上截取: printWriter:我们一般用来传的是对像 而outputStream用来传的是二进制,故上传文件时,一定要使用此. PrintWriter以字符为单位,支持汉字,OutputStre ...
- 自定义jquery表格插件
以前一直都是再用easyui插件来实现各种功能,但是easyui太过于庞大,使用越多对服务器负载影响越大. 基于此,在模仿easyui的dataGrid表格插件的同时,自己去封装了一个.实现了基本的j ...
- php 不能同时提交form
注意:提交form到相应的页面时,不能在form中嵌套一个form,否则,不能提交
- android 子线程更新UI
参考http://examples.javacodegeeks.com/android/core/os/handler/android-handler-example/package com.exam ...
- ISO/IEC14443和15693的对比有何具体区别
ISO14443 ISO14443A/B:超短距离智慧卡标准.这标准订出读取距离7-15厘米的短距离非接触智慧卡的功能及运作标准,使用的频率为13.56MHz. ISO14443定义了TYPE ...
- json对象的封装与解析
一.解析json对象 表结构信息对象,json格式,名称为tableObj * { * "tableName":"t_res", ...
- hdoj 2222 Keywords Search(AC自动机)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2222 思路分析:该问题为多模式匹配问题,使用AC自动机解决:需要注意的问题是如何统计该待查询的字符串包 ...