Boost Asio socket 非阻塞/缓冲区大小等属性设置
设置阻塞与非阻塞
void SetNoBlock(bool bNoBlock)
{if(bNoBlock) // 非阻塞{boost::asio::socket_base::bytes_readable command(true);m_socket.io_control(command);}else{//阻塞boost::asio::socket_base::bytes_readable command(false);m_socket.io_control(command);}
}
设置发送缓冲区大小
void SetSendBufferSize(int nSize)
{boost::asio::socket_base::send_buffer_size size_option(nSize);m_socket.set_option(size_option);
}
设置接收缓冲区大小
void SetRecvBufferSize(int nSize)
{boost::asio::socket_base::receive_buffer_size size_option(nSize);m_socket.set_option(size_option);
}
设置socket端口复用
1 在boost的acceptor类说明中有这样的一个例子,用set_option设置端口是否可复用。
boost::asio::ip::tcp::acceptor acceptor(io_service);boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port);acceptor.open(endpoint.protocol());acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));acceptor.bind(endpoint);acceptor.listen();
2 还有一种方法 就是在acceptor的构造函数,下面是acceptor的构造函数,我们看到,第三个参数名reuse_addr 。默认是可以端口复用的,要设置是否复用,也可以通过该处传参。
basic_socket_acceptor(boost::asio::io_service& io_service,const endpoint_type& endpoint, bool reuse_addr = true)
不停留,不管数据多小都发送到对端。停留,只有数据达到一定大小或者超时时,将数据发送对倒对端。
m_socket.set_option(boost::asio::ip::tcp::no_delay(true));
保持常连接
m_socket.set_option(boost::asio::socket_base::keep_alive(true));
Boost Asio socket 非阻塞/缓冲区大小等属性设置相关推荐
- boost库之socket 非阻塞/缓冲区大小等属性设置
boost库之socket 非阻塞/缓冲区大小等属性设置 原文:http://blog.csdn.net/byxdaz/article/details/77318219 asio socket 非阻塞 ...
- php socket非阻塞,php stream_set_blocking设置非阻塞模式,php stream_set_blocking影响函数fgets()和fread()...
stream_set_blocking函数可以将资源流设置为阻塞模式或者非阻塞模式,主要影响的函数分别是fgets,fread,其他的手册没有说. 在socket编程中,如果一个socket连接上了, ...
- boost::mpi模块非阻塞点对点操作的测试
boost::mpi模块非阻塞点对点操作的测试 实现功能 C++实现代码 实现功能 boost::mpi模块非阻塞点对点操作的测试 C++实现代码 #include <boost/mpi/non ...
- C# socket通信 接收缓冲区大小设置,以及粘包问题的解决
C# socket通信 接收缓冲区大小,以及粘包问题的解决 一. Socket接收缓冲区无论: 1.buffer设置有多大: 2.同步接收还是异步接收: 3.发送超过 43690 也就是 42KB的字 ...
- 【Java 网络编程】客户端 Socket 配置 ( 超时时间 | 端口复用 | Nagle 算法 | 心跳包机制 | 连接关闭机制 | 缓冲区大小 | 性能权重设置 | 紧急数据设置 )
文章目录 I 设置读取超时时间 II Socket 复用绑定端口设置 III 开启 Nagle 算法 ( 沾包 ) IV 心跳包机制 V 连接关闭处理 VI Socket 紧急数据内敛设置 VII S ...
- epoll关于ET、LT模式和socket非阻塞模式的几个总结
epoll的ET和LT模式 LT水平触发是默认的模式,只要缓冲区有消息就会触发,如果这次事件没有被处理,那么下一次调用epoll_wait的时候,事件仍然会被触发:ET边沿触发只会在第一次有消息的时候 ...
- Java nio Socket非阻塞模式
NIO 有一个主要的类Selector,这个类似一个观察者,只要我们把需要探知的socketchannel告诉Selector,我们接着做别的事情,当有 事件发生时,他会通知我们,传回一组Select ...
- java 阻塞 socket_java socket非阻塞I/O
1 非阻塞(Nonblocking)体系结构 在这一部分,我将从理论的角度来解释非阻塞体系的结构及其工作原理.这部"喜剧"(当然,如果你喜欢的话也可以称做戏剧)的&quo ...
- C++ TCP socket 非阻塞连接超时设定方式
由于网上大部分教程为阻塞方式连接,当项目需要大量连接从机的情况下,阻塞式连接socket会导致长时间卡顿.因此需要用非阻塞式的方式连接,并设置超时是时间,再设置会阻塞.下属C++编辑代码实测可用,代码 ...
- Socket 非阻塞模式下connect 返回EINPROGRESS(115)错误
今天再测试socket的时候,发现一个很奇怪的问题,就是客户端再connect的时候第一次connect总是会返回-1,errno是115,往往第二次连接就可以成功了.但是对于服务端来说,第一次连接已 ...
最新文章
- 局域网与网络工程课堂笔记(1)(2)
- swfUpload 使用心得
- 三星r381android+wear,三星新路线图:Android Wear手表/Tizen手机
- 可视化篇(三)———使用Excel绘制动态数据分布饼图
- t检验自由度的意义_T检验、F检验和统计学意义
- 百万数据报表读取:解决方案及原理分析
- 如何选择深度学习优化器
- iview 级联选择组件_vue组件递归渲染实例
- MapReduce二次排序
- C#泛型中的抗变和协变
- hello程序代码python_翻译:《实用的Python编程》01_02_Hello_world
- authware_在yonohub上轻松使用autoware auto
- ArcView GIS 应用与开发技术(6)- 属性查询
- SQL Server 2014 软件安装教程
- 中国国家信息安全产品认证证书 | CCRC信息安全服务资质认证
- 应用程序无法正常启动0xc000007b问题解决
- 上岸重庆邮电大学软件工程学院学硕总结
- Google将推出Android手机版Voice应用程序
- Fixed Effect
- H3c 详细Raid配置过程
热门文章
- 如何用TXT文档数据批量制作商品条形码
- JAVA语言基础-面向对象(方法重写概述及其应用)
- 深入Webpack-编写Loader
- JetS3t使用说明
- [oracle] 设置PL/SQL Developer 字符集
- Typecho中的gravatar头像无法加载
- 54.Linux/Unix 系统编程手册(下) -- POSIX 共享内存
- 62. Using Default Magento Cache
- 5. php 基本数据类型
- php中is_scalar判断是否是标量