设置阻塞与非阻塞

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 非阻塞/缓冲区大小等属性设置相关推荐

  1. boost库之socket 非阻塞/缓冲区大小等属性设置

    boost库之socket 非阻塞/缓冲区大小等属性设置 原文:http://blog.csdn.net/byxdaz/article/details/77318219 asio socket 非阻塞 ...

  2. php socket非阻塞,php stream_set_blocking设置非阻塞模式,php stream_set_blocking影响函数fgets()和fread()...

    stream_set_blocking函数可以将资源流设置为阻塞模式或者非阻塞模式,主要影响的函数分别是fgets,fread,其他的手册没有说. 在socket编程中,如果一个socket连接上了, ...

  3. boost::mpi模块非阻塞点对点操作的测试

    boost::mpi模块非阻塞点对点操作的测试 实现功能 C++实现代码 实现功能 boost::mpi模块非阻塞点对点操作的测试 C++实现代码 #include <boost/mpi/non ...

  4. C# socket通信 接收缓冲区大小设置,以及粘包问题的解决

    C# socket通信 接收缓冲区大小,以及粘包问题的解决 一. Socket接收缓冲区无论: 1.buffer设置有多大: 2.同步接收还是异步接收: 3.发送超过 43690 也就是 42KB的字 ...

  5. 【Java 网络编程】客户端 Socket 配置 ( 超时时间 | 端口复用 | Nagle 算法 | 心跳包机制 | 连接关闭机制 | 缓冲区大小 | 性能权重设置 | 紧急数据设置 )

    文章目录 I 设置读取超时时间 II Socket 复用绑定端口设置 III 开启 Nagle 算法 ( 沾包 ) IV 心跳包机制 V 连接关闭处理 VI Socket 紧急数据内敛设置 VII S ...

  6. epoll关于ET、LT模式和socket非阻塞模式的几个总结

    epoll的ET和LT模式 LT水平触发是默认的模式,只要缓冲区有消息就会触发,如果这次事件没有被处理,那么下一次调用epoll_wait的时候,事件仍然会被触发:ET边沿触发只会在第一次有消息的时候 ...

  7. Java nio Socket非阻塞模式

    NIO 有一个主要的类Selector,这个类似一个观察者,只要我们把需要探知的socketchannel告诉Selector,我们接着做别的事情,当有 事件发生时,他会通知我们,传回一组Select ...

  8. java 阻塞 socket_java socket非阻塞I/O

    1      非阻塞(Nonblocking)体系结构 在这一部分,我将从理论的角度来解释非阻塞体系的结构及其工作原理.这部"喜剧"(当然,如果你喜欢的话也可以称做戏剧)的&quo ...

  9. C++ TCP socket 非阻塞连接超时设定方式

    由于网上大部分教程为阻塞方式连接,当项目需要大量连接从机的情况下,阻塞式连接socket会导致长时间卡顿.因此需要用非阻塞式的方式连接,并设置超时是时间,再设置会阻塞.下属C++编辑代码实测可用,代码 ...

  10. Socket 非阻塞模式下connect 返回EINPROGRESS(115)错误

    今天再测试socket的时候,发现一个很奇怪的问题,就是客户端再connect的时候第一次connect总是会返回-1,errno是115,往往第二次连接就可以成功了.但是对于服务端来说,第一次连接已 ...

最新文章

  1. 局域网与网络工程课堂笔记(1)(2)
  2. swfUpload 使用心得
  3. 三星r381android+wear,三星新路线图:Android Wear手表/Tizen手机
  4. 可视化篇(三)———使用Excel绘制动态数据分布饼图
  5. t检验自由度的意义_T检验、F检验和统计学意义
  6. 百万数据报表读取:解决方案及原理分析
  7. 如何选择深度学习优化器
  8. iview 级联选择组件_vue组件递归渲染实例
  9. MapReduce二次排序
  10. C#泛型中的抗变和协变
  11. hello程序代码python_翻译:《实用的Python编程》01_02_Hello_world
  12. authware_在yonohub上轻松使用autoware auto
  13. ArcView GIS 应用与开发技术(6)- 属性查询
  14. SQL Server 2014 软件安装教程
  15. 中国国家信息安全产品认证证书 | CCRC信息安全服务资质认证
  16. 应用程序无法正常启动0xc000007b问题解决
  17. 上岸重庆邮电大学软件工程学院学硕总结
  18. Google将推出Android手机版Voice应用程序
  19. Fixed Effect
  20. H3c 详细Raid配置过程

热门文章

  1. 如何用TXT文档数据批量制作商品条形码
  2. JAVA语言基础-面向对象(方法重写概述及其应用)
  3. 深入Webpack-编写Loader
  4. JetS3t使用说明
  5. [oracle] 设置PL/SQL Developer 字符集
  6. Typecho中的gravatar头像无法加载
  7. 54.Linux/Unix 系统编程手册(下) -- POSIX 共享内存
  8. 62. Using Default Magento Cache
  9. 5. php 基本数据类型
  10. php中is_scalar判断是否是标量