boost库之tcp实例(同步方式)
原文:http://blog.csdn.net/byxdaz/article/details/72627678
//服务端
- #include <iostream>
- #include <boost/thread/thread.hpp>
- #include <boost/asio.hpp>
- using namespace boost::asio;
- //链接客户端处理
- void ConnectionClientProcess(ip::tcp::socket * sockClient)
- {
- std::cout<<sockClient->remote_endpoint().address()<<std::endl;
- //向客户端发送hello world!
- boost::system::error_code ec;
- while(true)
- {
- sockClient->write_some(buffer("abcdefg"),ec);
- //如果出错,打印出错信息
- if(ec)
- {
- std::cout<<boost::system::system_error(ec).what()<<std::endl;
- break;
- }
- Sleep(200);
- }
- }
- int main(int argc, char* argv[])
- {
- std::list<boost::thread *> listThreadClient;
- std::list<ip::tcp::socket *> listSocketClient;
- //io_service对象
- io_service iosev;
- ip::tcp::acceptor acceptor(iosev,ip::tcp::endpoint(ip::tcp::v4(),1000));
- for(;;)
- {
- //socket对象
- ip::tcp::socket * socketClient = new ip::tcp::socket(iosev);
- //等待直到客户端连接进来
- acceptor.accept(*socketClient);
- //显示连接进来的客户端
- listSocketClient.push_back(socketClient);
- boost::thread * thr = new boost::thread(ConnectionClientProcess,socketClient);
- listThreadClient.push_back(thr);
- //与当前客户交互完成后循环继续等待下一客户连接
- }
- //等待线程都退出
- std::list<boost::thread *>::iterator iter = listThreadClient.begin(),iterEnd = listThreadClient.end();
- for(iter; iter!= iterEnd; iter++)
- {
- (*iter)->join();
- }
- std::list<ip::tcp::socket *>::iterator iterSock = listSocketClient.begin(),iterEndSock = listSocketClient.end();
- for(iterSock; iterSock!= iterEndSock; iterSock++)
- {
- (*iterSock)->close();
- }
- return 0;
- }
//客户端
- #include <iostream>
- #include <boost/asio.hpp>
- using namespace boost::asio;
- int main(int argc, char* argv[])
- {
- //io_service对象
- io_service iosev;
- //socket对象
- ip::tcp::socket socket(iosev);
- //连接端点
- ip::tcp::endpoint ep(ip::address_v4::from_string("127.0.0.1"),1000);
- //连接服务器
- boost::system::error_code ec;
- socket.connect(ep,ec);
- //如果出错,打印出错信息
- if(ec)
- {
- std::cout<<boost::system::system_error(ec).what()<<std::endl;
- return -1;
- }
- //接收数据
- char buf[100] = {0};
- size_t len=socket.read_some(buffer(buf),ec);
- std::cout.write(buf,len);
- return 0;
- }
boost库之tcp实例(同步方式)相关推荐
- boost库之tcp client 回调不正常
原文: http://blog.csdn.net/byxdaz/article/details/79244800 这个在boost1.64下是报错的, boost::array<char,TCP ...
- boost库之tcp server(异步)
原文:http://blog.csdn.net/byxdaz/article/details/72676000 //服务端 boost1.64 报错: boost::array<char, 12 ...
- Windows下链接boost库及应用实例
1.在官网下载合适的boost版本.boost安装包 2.进行安装,建议安装在默认目录下.我安装的目录为C:\local 3.visual studio 2019下进行属性配置. (1)进行配置选项, ...
- C/C++ 开发 boost 库参考手册整理(2) 【学习笔记】
文档声明: 以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正.并且该文档在后期会随着学习的深入不断补充完善.感谢各位的参考查看. 笔记资料仅供学习交流使用,转载请标明出处 ...
- asio boost 异步错误处理_boost::ASIO的同步方式和异步方式
http://blog.csdn.net/zhuky/article/details/5364574 http://blog.csdn.net/zhuky/article/details/536468 ...
- Boost:以协程的方式实现重构echo服务器的实例
Boost:以协程的方式实现重构echo服务器的实例 实现功能 C++实现代码 实现功能 boost::asio模块,以协程的方式实现重构echo服务器的实例 C++实现代码 #include < ...
- Boost:以协程的方式实现带有默认值的echo服务器的实例
Boost:以协程的方式实现带有默认值的echo服务器的实例 实现功能 C++实现代码 实现功能 boost::asio模块,以协程的方式实现带有默认值的echo服务器的实例 C++实现代码 #inc ...
- Boost:以协程的方式实现echo服务器的实例
Boost:以协程的方式实现echo服务器的实例 实现功能 C++实现代码 实现功能 boost::asio模块,以协程的方式实现echo服务器的实例 C++实现代码 #include <boo ...
- boost库之udp server实例
//UdpLinkServer.h //udp服务#pragma once#include <boost/asio/ip/tcp.hpp> #include <boost/asio. ...
最新文章
- %@ INCLUDE FILE=%与JSP:INCLUDE PAGE=/区别
- Java代码风格:最终决定
- VS2019 WPF制作OTA上位机(一)新建工程
- 数据结构之并查集:UF-Tree优化并查集——19
- BZOJ 3083: 遥远的国度(树链剖分+DFS序)
- java标识符和关键字相关概念
- 征服ASP.NET Ajax典型应用 (试读)
- 英语听力采用计算机化考试,今年的北京普通高考英语听力有何不同?
- 怎么在线批量网站打开?
- Arangodb Basic CRUD
- 人工智能研究现状及发展前景如何
- 平头哥RVB2601开发板开发环境CDK
- 企业IT资产年终盘点实录——踩过的坑如月球表面
- C++语法(二十)常函数、常对象
- 放大器的传递函数_运放全差分放大器实现单端与平衡的相互转换
- 企业如何实现在线客服功能?
- 最新款带采集功能壁纸/头像/动态壁纸小程序上线超炫裂变超强支持投稿
- PTA:最佳情侣身高差 (10分)(c++版)
- 这10个思路,能帮你设计出简单易用的网页
- python分析红楼梦出现的虚词词频统计_用Python分析红楼梦,见证贾府的兴衰
热门文章
- C 一个非递减数组 下标从0到n 元素的取值范围为从0到n的整数 判断其中是否有重复元素
- 学python还是go会php_现在想再学习一门编程语言,应该选择go还是python?
- Linux内核网络数据包发送(三)——IP协议层分析
- mysql超详细教程_MySQL8.0.23安装超详细教程
- 高中计算机考试编程题,2020年高中信息技术模块测试卷5(算法与程序设计) 信息技术试题(PDF版无答案)...
- android绘制高亮区域,实现高亮某行的RecyclerView效果
- 下面哪一c++ 语言表达式不能正确表示数学关系ax≤b,C++经典选择题(一)
- java c static块_java静态块
- 这是给程序员专用的书吗?
- 皮一皮:叫车就要叫这样的,霸气...