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

淘客返利网站怎么做搜索推广渠道

淘客返利网站怎么做,搜索推广渠道,网站系统建设系广告经营者,谷歌系平台推广一、muduo网络库主要提供了两个类: TcpServer:用于编写服务器程序 TcpClient:用于编写客户端程序 二、三个重要的链接库: libmuduo_net、libmuduo_base、libpthread 三、muduo库底层就是epoll线程池,其好处是…

一、muduo网络库主要提供了两个类:

        TcpServer:用于编写服务器程序        

        TcpClient:用于编写客户端程序

二、三个重要的链接库:

        libmuduo_net、libmuduo_base、libpthread

三、muduo库底层就是epoll+线程池,其好处是:

        可以将网络I/O代码和业务代码区分开,用户只需关注业务,网络的连接断开、读写事件的上报与监控交给muduo库

四、muduo库对外暴露两个业务接口:

        1.用户的连接与断开

        2.用户的可读写事件

五、基于muduo网络库的服务器开发步骤

        1.组合TcpServer对象

        2.创建Eventloop事件循环对象的指针

        3.明确Tcpserver构造函数需要什么参数,输出Chatserver的构造函数

            a.Tcpserver 主要提供两个回调函数:setConnectionCallback与setMessageCallback

            b.在构造函数中定义回调函数,在类中定义具体回调的函数的实现

        4.在当前服务类的构造函数中,注册处理连接的回调函数和处理读写事件的回调函数

        5.设置合适的服务端线程数量,muduo库会自己分配I/O线程和work线程

/*
muduo网络库主要提供了两个类:TcpServer:用于编写服务器程序
TcpClient:用于编写客户端程序三个重要的链接库:
libmuduo_net、libmuduo_base、libpthreadmuduo库底层就是epoll+线程池,其好处是:
可以将网络I/O代码和业务代码区分开,用户只需关注业务,网络的连接断开、读写事件的上报与监控交给muduo库只暴露两个业务接口:
1.用户的连接与断开
2.用户的可读写事件*/
#include<muduo/net/TcpServer.h>
#include<muduo/net/EventLoop.h>
#include<functional>// #bind
#include<iostream>
#include<string>
using namespace std;
using namespace muduo;
using namespace muduo::net;
using namespace placeholders;/*
基于muduo网络库的服务器开发
1.组合TcpServer对象
2.创建Eventloop事件循环对象的指针
3.明确Tcpserver构造函数需要什么参数,输出Chatserver的构造函数a.Tcpserver 主要提供两个回调函数:setConnectionCallback与setMessageCallbackb.在构造函数中定义回调函数,在类中定义具体回调的函数的实现
4.在当前服务类的构造函数中,注册处理连接的回调函数和处理读写事件的回调函数
5.设置合适的服务端线程数量,muduo库会自己分配I/O线程和work线程*/
class ChatServer{
public://构造函数对TcpServer进行初始化,TcpServer没有默认构造ChatServer(EventLoop *loop,//事件循环 reactorconst InetAddress &listenAddr,//ip + portconst string &nameArg)// 线程/server的名称: _server(loop, listenAddr, nameArg), _loop(loop){//给服务器注册用户连接与断开的回调函数,当监听到连接/断开时执行onConnection,具体如何监听到是网络库的事情,无需用户操心_server.setConnectionCallback(std::bind(&ChatServer::onConnection,this,_1));//相当于this.onConnection(TcpConnectionPtr&)//给服务器注册用户读写事件的回调函数_server.setMessageCallback(std::bind(&ChatServer::onMessage,this,_1,_2,_3));//设置服务器端的线程数量,muduo库会自适应处理连接线程和工作线程的分配;CPU核数一般等于线程数//1个I/O线程,3个work线程_server.setThreadNum(4);}//开启事件循环void start(){_server.start();}private://专门处理用户的连接创建和断开,相当于epoll中监听到listenfd后执行acceptvoid onConnection(const TcpConnectionPtr &conn){if(conn->connected()){cout<<conn->peerAddress().toIpPort()<<"->"<<conn->localAddress().toIpPort()<<"state: online"<<endl;}else{cout<<conn->peerAddress().toIpPort()<<"->"<<conn->localAddress().toIpPort()<<"state: offline"<<endl;conn->shutdown();//close(fd)}}//专门处理用户的读写事件void onMessage(const TcpConnectionPtr &conn,//连接的共享指针Buffer *buffer,//缓冲区,存放数据Timestamp time)//接收到数据的时间信息{//echo服务器string buf=buffer->retrieveAllAsString();cout<<"recv: "<<buf<<"time: "<<time.toString()<<endl;conn->send(buf);}TcpServer _server;// #1EventLoop *_loop;// #2 看作epoll};int main(){EventLoop loop;//类似于创建epollInetAddress addr("127.0.0.1",6000);//本地回环地址,服务器仅接受来自本机的连接。适合在开发阶段进行本地调试。ChatServer server(&loop,addr,"ChatServer");server.start();//epoll_ctl,listenfd加入epollloop.loop();//类似于epoll_wait,以阻塞的方式等待新用户连接,已连接用户的读写事件等return 0;
}

结果展示:

http://www.hkea.cn/news/711918/

相关文章:

  • 武山建设局网站什么是seo
  • 做文案需要用到的网站全网模板建站系统
  • 苏州乡村旅游网站建设策划书网站建设百度推广
  • 12380网站建设情况总结百度浏览器入口
  • 直播网站开发要多久排行榜前十名
  • 网站备案完才能建站吗企业建站公司
  • 网站开发外包合同西安网站优化公司
  • 2022网页设计尺寸规范和要求怎么做seo关键词优化
  • 北京大学两学一做网站十大收益最好的自媒体平台
  • 网站开发服务费企业网站建设的一般要素
  • 台州企业网站制作公司郴州网站推广
  • 如何做移动端网站邮件营销
  • 网站制作佛山crm管理系统
  • 网站综合营销方案设计网页设计教程
  • 东莞做网站制作宁波技术好的企业网站制作
  • 广州做网站公司哪家好如何注册一个网站
  • 网站备案协议书互联网营销师证书含金量
  • 广州企业网站建设报价免费推广网站大全
  • 宁波网站排名怎么提交网址让百度收录
  • 杭州 手机网站建设活动营销
  • 加网络网站建设工作室做一个企业网站大概需要多少钱
  • 张家港优化网站seo百度网盘下载
  • 烟台有没有做网站网站安全
  • 网站建设与制作设计公司惠州seo代理商
  • 东营新闻网今日头条常州网站seo
  • 东莞全网合一网站黄页引流推广网站软件免费
  • wordpress的数据库在那里百度seo如何快速排名
  • wordpress手机客服代码免费seo快速排名工具
  • web网站开发作品关键词歌词图片
  • 汕头行业网站seo培训公司