boost库之tcp实例(同步方式)
来源:互联网 发布:网络写手已成高危职业 编辑:程序博客网 时间:2024/05/29 19:11
//服务端
#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;}
阅读全文
0 0
- boost库之tcp实例(同步方式)
- boost库之tcp实例(异步方式)
- boost tcp 同步方式 笔记
- boost之asio同步io使用实例
- boost::asio编程-同步TCP
- BOOST TCP 同步 网络通信
- boost 网络库使用 之同步
- boost::asio 的同步方式
- boost::asio 的同步方式
- boost::asio 的同步方式
- boost TCP 同步IO服务端 代码
- boost TCP 同步IO客户端 示例演示
- boost库之udp server实例
- boost库之udp client实例
- boost库之udp广播实例
- 【06】 Boost库学习笔记之异步通信(TCP)
- boost:asio的同步方式和异步方式
- boost:asio的同步方式和异步方式
- Comparing Hadoop, Spark, and Storm
- 软件设计目标—健壮性
- Oracle12C--索引表(三十二)
- Selenium错误提示
- Vue.js 中 v-if 和 v-show 有什么区别?
- boost库之tcp实例(同步方式)
- 有关线程中断和线程阻塞
- C# Linq
- SQL Server 批量转换指定字段类型为另一种类型
- JQuery 学习笔记-2017.05.22
- Win7、win8、win10下实现精准截获Explorer拷贝行为
- 校园二手物品交易系统
- 杭电1042
- python 处理xml文件