当前位置: 首页 > news >正文

怎么样创建一个网站最近军事新闻

怎么样创建一个网站,最近军事新闻,网站建设行业,门户网站制作的公司C 网络编程 asio 使用总结 - 知乎 (zhihu.com) 基于Boost::asio的多线程异步TCP服务器&#xff0c;实现了io_service线程池&#xff0c;测试了1万左右的并发访问&#xff0c;读写无压力_boost asio支持最大并发_E404的博客-CSDN博客 单线程 server.cpp #include <cstdlib&g…

C++ 网络编程 asio 使用总结 - 知乎 (zhihu.com)

基于Boost::asio的多线程异步TCP服务器,实现了io_service线程池,测试了1万左右的并发访问,读写无压力_boost asio支持最大并发_E404的博客-CSDN博客

 单线程

 server.cpp

#include <cstdlib>
#include <ctime>#include <iostream>
#include <memory>
#include <utility>
#include <string>#include <boost/asio.hpp>using boost::asio::ip::tcp;class session : public std::enable_shared_from_this <session>                   //从enable_shared_from_this继承的类需要使用智能指针管理资源
{public:session(tcp::socket socket) : socket_(std::move(socket)) { } void start(){do_read();	}private:void do_read(){auto self(shared_from_this());                                      //对自己的引用计数+1socket_.async_read_some(boost::asio::buffer(data_,max_length),[this,self](boost::system::error_code ec , std::size_t length){printf("recv data:%s\n",data_);if(!ec){	do_write(length);}});}void do_write(std::size_t length){auto self(shared_from_this());boost::asio::async_write(socket_,boost::asio::buffer(data_,length),[this,self](boost::system::error_code ec , std::size_t){if(!ec){do_read();		}});}private:tcp::socket socket_;enum {max_length = 1024};char data_[max_length];
};class Server
{public:Server(boost::asio::io_service &io_service,short port) : acceptor_(io_service, tcp::endpoint(tcp::v4(),port)) , socket_(io_service)	{	}void start(){do_accept();}private:void do_accept(){acceptor_.async_accept(socket_ , [this](boost::system::error_code ec)    //创建一个socket连接{if(!ec){auto newSession = std::make_shared<session>(std::move(socket_));newSession->start();}		do_accept();});}tcp::acceptor acceptor_;tcp::socket socket_;
};int main(int argc,char *argv[])
{try{if(argc != 2){std::cerr << "请输入端口号:" << std::endl;return 1;}boost::asio::io_service io_service;Server s(io_service,std::atoi(argv[1]));s.start();io_service.run();}catch(std::exception &e){std::cerr << "异常:" << e.what() << std::endl;}return 0;
}

client.cpp

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <signal.h>
#include <arpa/inet.h>#define MAXSIZE 1024
#define IP_ADDR "127.0.0.1"
#define IP_PORT 8888int i_sockfd = -1;void SigCatch(int sigNum)	//信号捕捉函数(捕获Ctrl+C)
{if(i_sockfd != -1){close(i_sockfd);}printf("Bye~! Will Exit...\n");exit(0);
}int main()
{struct sockaddr_in st_clnsock;char msg[1024];int nrecvSize = 0;signal(SIGINT, SigCatch);	//注册信号捕获函数if((i_sockfd = socket(AF_INET, SOCK_STREAM, 0) ) < 0)	//建立套接字{printf("socket Error: %s (errno: %d)\n", strerror(errno), errno);exit(0);}memset(&st_clnsock, 0, sizeof(st_clnsock));st_clnsock.sin_family = AF_INET;  //IPv4协议//IP地址转换(直接可以从物理字节序的点分十进制 转换成网络字节序)if(inet_pton(AF_INET, IP_ADDR, &st_clnsock.sin_addr) <= 0){printf("inet_pton Error: %s (errno: %d)\n", strerror(errno), errno);exit(0);}st_clnsock.sin_port = htons(IP_PORT);	//端口转换(物理字节序到网络字节序)if(connect(i_sockfd, (struct sockaddr*)&st_clnsock, sizeof(st_clnsock)) < 0)	//主动向设置的IP和端口号的服务端发出连接{printf("connect Error: %s (errno: %d)\n", strerror(errno), errno);exit(0);}printf("======connect to server, sent data======\n");while(1)	//循环输入,向服务端发送数据并接受服务端返回的数据{fgets(msg, MAXSIZE, stdin);printf("will send: %s", msg);if(write(i_sockfd, msg, MAXSIZE) < 0)	//发送数据{printf("write Error: %s (errno: %d)\n", strerror(errno), errno);exit(0);}memset(msg, 0, sizeof(msg));if((nrecvSize = read(i_sockfd, msg, MAXSIZE)) < 0)	//接受数据{printf("read Error: %s (errno: %d)\n", strerror(errno), errno);}else if(nrecvSize == 0){printf("Service Close!\n");}else{printf("Server return: %s\n", msg);}}return 0;
}

http://www.tj-hxxt.cn/news/100228.html

相关文章:

  • 做放单主持的网站windows优化大师使用方法
  • 价格划算的网站开发抖音推广渠道有哪些
  • 六合网站建设网站推广优化排名
  • wordpress标签没反应苏州seo安严博客
  • 我想买个空间自己做网站seo经典案例
  • 网站建设需要哪些技术人员平台推广公众平台营销
  • 做推广送网站免费建站重庆关键词优化平台
  • wordpress悬浮bar百度权重优化软件
  • 怎么做免费的产品图片网站茶叶网络推广方案
  • 功能型网站开发价格站长之家查询网
  • 天津市建设工程定额网站b2b网站大全
  • 衡量网站质量的标准搜狗优化排名
  • 电子商务网站建设实例seo站
  • 外汇直播室都是网站做的网站收录排名
  • 西宁网站推广seo关键词优化推广
  • 制作公司网页多钱seo搜索优化专员招聘
  • 做网站最好的公网站收录软件
  • 营销型网站建设搭建方法百度下载安装到桌面上
  • 网站代理备案表sem和seo哪个工作好
  • 武威 网站建设网站设计软件
  • 网站建设优化规划书搜索引擎调价工具哪个好
  • 名者观看网站谷歌搜索引擎网页版入口
  • 宁波led网站建设最有吸引力的营销模式
  • 大学生兼职网站开发毕设论文网络营销岗位招聘信息
  • wordpress如何修改语言引擎seo如何优化
  • 邯郸做网站找哪家好新开店铺怎么做推广
  • 印章在线制作网站三亚百度推广开户
  • 怎么做相册网站群推广
  • 北京建设银行纪念钞预定官方网站黄页88网
  • 六安网站建设全包百度软件