Boost Asio总结(16)例子
step1. 创建io_server实例(在Boost1.66后的版本为io_context)
boost::asio::io_service io_service;
step2. 设置endpoint的地址ip和端口
unsigned short port = 8080;
. 客户端client
auto const address = boost::asio::ip::address_v4::from_string("192.168.0.123");
boost::asio::ip::tcp::endpoint endpoint(address,port);
. server设置要接受连接的端口和协议类型
boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(),port);//ipv4,侦听端口8080
step3.创建socket实例
boost::asio::ip::tcp::socket socket(io_service);
.客户端client,建立到endpoint的socket连接
socket.connect(endpoint);//同步
socket.async_connect(endpoint,[](){});//异步,需要回调函数,这里使用的是lambda表达式
. 服务器端server
//创建acceptor实例,并开始侦听Socket连接
acceptor.accept(socket)//同步,运行到此处时会阻塞线程知道侦听到client的连接请求
socket.async_accept(socket,[](){});//异步,需要回调函数,这里使用的是lambda表达式
step4.对Socket进行读写操作,客户端相同
boost::asio::write(socket,boost::asio::buffer("hello world!")); //向socket中写入字符std::cout<<socket.available()<<std::endl; //获取可读取的字节数
std::vector<char> str(socket.available()+1,0); //定义一个vector缓冲区 socket.receive(boost::asio::buffer(str)); //使用buffer()包装缓冲区并接收数据
std::cout<<"client received: "<<&str[0]<<std::endl;//输出接收到的字符串
Boost Asio总结(16)例子相关推荐
- c++语言 tcp例子,C++ boost::asio编程-同步TCP详解及实例代码
boost::asio编程-同步TCP boost.asio库是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手法实现了统一的异步调用模型. boost.asio库支持TCP.UDP.IC ...
- boost::asio::deadline_timer(理解)
并发与并行: 并发和并行从宏观上来讲都是同时处理多路请求的概念.但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生:而并发是指两个或多个事件在同一时间间隔内发生. 1.Timer.1 - 使 ...
- Boost.Asio基本原理
Boost.Asio基本原理 这一章涵盖了使用Boost.Asio时必须知道的一些事情.我们也将深入研究比同步编程更复杂.更有乐趣的异步编程. 网络API 这一部分包含了当使用Boost.Asio编写 ...
- 基于Boost.Asio的异步通信服务器设计与开发
boost::asio 通讯服务器实践 1. 开发环境搭建 1.1. Asio准备 万事开头难.对于一个C++的陌生者,编译一个开源的代码并不是一件轻松愉快的事情.为使大家在审阅和检测本代码可使 ...
- boost.asio包装类st_asio_wrapper开发教程(2014.5.23更新)(一)-----转
一:什么是st_asio_wrapper 它是一个c/s网络编程框架,基于对boost.asio的包装(最低在boost-1.49.0上调试过),目的是快速的构建一个c/s系统: 二:st_asio_ ...
- 网上收集下boost::asio发送与传输相关的几个函数,老是忘记
刚连接上:调用async_accept 1 boost::shared_ptr<tcp::socket> spMySocket(new tcp::socket(m_ioservice)); ...
- Boost.Asio入门
原文地址:https://mmoaay.gitbooks.io/boost-asio-cpp-network-programming-chinese/content/Chapter1.html Boo ...
- Boost.Asio使用实例
1.概述: Boost.Asio是一个跨平台的C++库,用于网络和底层I/O编程,可以在I/O对象(如socket)上执行同步和异步操作. 2.简略的过程分析.以socket的连接操作为例: 你的程序 ...
- boost::asio ssl
以 boost::asio::ssl::stream<boost::asio::ip::tcp::socket> 代替 boost::asio::ip::tcp::socket 客户端c ...
最新文章
- Windows 下的 7 种 DLL 劫持技术
- 9张表格学会,子网划分
- flask 开发接口测试平台
- hive 百分比_HIVE短期内再次突破前高
- [蓝桥杯]算法提高 天天向上(记忆化搜索)
- 《小学生C++趣味编程》第42课 最小公倍数
- 怎么在Ubuntu下设置程序的快捷键
- A. Holidays
- 系统封装 如何加载PE到Easyboot进行合盘
- 2013年深圳百公里徒步感悟
- 【paper-note7】Several Papers About Video Classification
- 一天狂点3.7万个赞! 男子因“点赞过多”被大众点评网处罚 法庭上吵翻
- 使用paddlepaddle进行手写数字识别
- linux generic netlink实现机制:注册、创建
- 计算机中班音乐,幼儿园中班音乐活动课件大全【三篇】
- 一个简单的猜数字游戏(附带关机惩罚)
- 【面试】Js面试题(一)
- 载波层叠调制在多电平变换器及两电平变换器中的应用
- 计算机应用基础贴吧,计算机应用基础,有会做的吗?
- 64位系统VBS调用32位COM组件
热门文章
- 46.一个例子了解C++中异常处理
- Java 洛谷 求质数(素数)、合数、因数、最大公约数、最小公倍数
- 【Linux - mysql】怎么修改数据库编码
- 计算器显示代码java_java编写的计算器源代码
- php怎么定义索引,PHP未定义的索引/变量
- oracle执行减法,oracle时间的加法和减法
- ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)
- CUMCM:05B DVD在线租赁
- MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度
- TCP socket编程记录(C语言)