Boost asio--tcp server---1(无封装阻塞)
来源:互联网 发布:淘宝店铺一键装修 编辑:程序博客网 时间:2024/04/27 01:57
// net.cpp : 定义控制台应用程序的入口点。
//这只一个阻塞模式的TCP服务器端程序
#include "stdafx.h"
#include <iostream>
#include <boost/asio.hpp>
using namespace boost::asio;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int port = 60000;
io_service io;
boost::asio::ip::tcp::acceptor acceptor(io);//创建accept对象
boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port);//创建端点(IP和端口)
acceptor.open(endpoint.protocol());
//acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(false));//端口是否复用
acceptor.bind(endpoint);//绑定端点
acceptor.listen();//监听客户端连接
char buff[1024];
try
{//
while(1)
{
memset(buff,0,sizeof(buff)); //清空缓冲区
ip::tcp::socket socket(io); //定义一个socket 对象
acceptor.accept(socket); // 等待客户端链接过来,阻塞函数,客户端连接进来socket用于服务器和客户端的通信
cout<<"客户端的Socket信息为:"<<socket.remote_endpoint().address()
<<":"
<<socket.remote_endpoint().port()
<<std::endl;// 显示连接进来的客户端
int size = socket.read_some(buffer(buff, 1024));// 接收客户端发送来的信息,阻塞函数
buff[size] = '\0';
std::cout<<"receive "<<size<<" bytes from client:\n"<<buff<<std::endl;
socket.write_some(buffer("hi, i am server!"));//服务器向客户端发送msg
//buffer函数用于包装多种容器的缓冲区类型
}
}
catch(exception &e)
{
cout<<e.what()<<endl;
}
return 0;
}
- Boost asio--tcp server---1(无封装阻塞)
- boost asio 同步阻塞
- boost::asio(1):封装了定时器类
- boost-ASIO--(1)
- 使用boost ASIO库封装TCP服务器类
- boost::asio::tcp
- 一个灵活的boost.asio的TCP Server 框架
- boost asio学习(1)
- qt+boost::asio+tcp文件传输
- boost::asio编程-同步TCP
- boost::asio编程-异步TCP
- qt+boost--asio+tcp文件传输
- boost完全开发指南第12章-并发编程 1 (采用boost-asio库封装的tcp_server)
- boost::asio server编程实例
- boost::asio阻塞等待与异步等待
- boost asio 学习1
- 学习boost::asio(1)
- boost asio 分析1
- 第6章 树和二叉树——二叉树顺序存储家谱
- javascript操作excel知识点
- USACO 1.2.4
- linux中更改文件所有者
- C++中的单例模式
- Boost asio--tcp server---1(无封装阻塞)
- ffmpeg中available protocols
- 职业探秘:游戏测试员
- 用OpenCv创建视频
- ZOJ-1008-Gnome Tetravex
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释(转)
- 采用PHP函数memory_get_usage获取PHP内存清耗量的方法
- 选择电子邮件系统该从哪些角度考虑?
- 现实世界的LISP:Clojure语言初探