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

网上书店网站建设毕业设计范文七牛云wordpress加速百度cdn

网上书店网站建设毕业设计范文,七牛云wordpress加速百度cdn,wordpress内存耗尽,电子毕业设计代做网站Muduo网络库:底层实质上为Linux的epoll pthread线程池,且依赖boost库。 muduo的网络设计核心为一个线程一个事件循环,有一个main Reactor负载accept连接,然后把连接分发到某个sub Reactor(采用轮询的方式来选择sub Reactor)&…

 

        Muduo网络库:底层实质上为Linux的epoll + pthread线程池,且依赖boost库。 muduo的网络设计核心为一个线程一个事件循环,有一个main Reactor负载accept连接,然后把连接分发到某个sub Reactor(采用轮询的方式来选择sub Reactor),该连接的所用操作都在那个sub Reactor所处的线程中完成。多个连接可能被分派到多个线程中,以充分利用CPU,Reactor poll的大小是固定的,根据CPU的数目确定。如果有过多的耗费CPU I/O的计算任务,可以提交到创建的ThreadPool线程池中专门处理耗时的计算任务。

1、 muduo网络库实例

muduo网络库实质为: epoll + 线程池,优点是能够将网络I/O的代码和业务代码分开。 而业务代码主要分为:用户的连接和断开、用户的可读写事件两类。至于什么时候发生这些事件,由网络库进行上报,如何监听这些事件,都是网络库所封装好的,我们就可以快速进行项目开发。

muduo给用户提供了两个主要的类:
1、TcpServer:用于编写服务器程序。
2、TcpClient:用于编写客户端程序。

如何配置muduo网络库请参考: 写文章-CSDN创作中心

 muduo网络库服务器编程

        基于muduo网络库开发服务器程序

  1. 组合TcpServer对象
  2. 创建EventLoop事件循环对象的指针
  3. 明确TcpServer构造函数需要什么参数,输出ChatServer的参数
  4. 在当前服务器类的构造函数当中,注册处理连接的回调函数和处理读写事件的回调函数
#include <muduo/net/TcpServer.h>
#include <muduo/net/EventLoop.h>
#include <iostream>
#include <functional>
#include <string>
using namespace std;
using namespace muduo;
using namespace muduo::net;
using namespace placeholders;class ChatServer
{
public:ChatServer(EventLoop *loop,const InetAddress &serverAddr,const string &nameArg): _server(loop, serverAddr, nameArg), _loop(loop){// 注册连接回调_server.setConnectionCallback(std::bind(&ChatServer::onConnection, this, _1));// 注册消息回调_server.setMessageCallback(std::bind(&ChatServer::onMessage, this, _1, _2, _3));// 设置线程数量_server.setThreadNum(4); // 4个IO线程}void start(){_server.start();}private:// 处理连接void 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;}}// 处理消息void onMessage(const TcpConnectionPtr &conn, Buffer *buffer, Timestamp time){string buf = buffer->retrieveAllAsString();cout << "recv data: " << buf << " time: " << time.toString() << endl;conn->send(buf); // 回显消息}TcpServer _server;EventLoop *_loop;
};int main()
{EventLoop loop;InetAddress addr("127.0.0.1", 9898); // 监听 127.0.0.1:9898ChatServer server(&loop, addr, "ChatServer");server.start(); // 启动服务器loop.loop();    // 事件循环return 0;
}

         上面的代码简单的使用了muduo网络库实现了一个回显服务器,我们可以在linux系统终端中使用telnet命令让客户端连接。

2、muduo网络库原理

        Muduo 基于 Reactor 模式,核心是事件驱动。以下是其工作流程:

启动服务器:

        创建一个 EventLoop 实例作为主循环。
        创建一个 TcpServer 实例,设置回调函数(连接、消息处理)。
        调用 loop.loop() 开始事件循环。
事件监听:

        主线程监听新连接。
        每当有新连接到来,将其分配到工作线程处理。
事件分发与处理:

        EventLoop 监听事件,通过 Poller 检测就绪的文件描述符。
        调用 Channel 的回调函数处理事件。
数据收发与连接管理:

        使用 TcpConnection 提供的接口收发数据。
        在连接断开时,自动清理资源。

3、经典的服务器设计模式Reactor模式

        服务端程序架构基本上是一个大的while循环,程序阻塞在accept或poll函数上,等待被监控的socket描述符上出现预期的事件。事件到达后,accept或poll函数的阻塞解除,程序向下执行,根据socket描述符上出现的事件,执行read、write或错误处理。
整体架构如下图所示:

        muduo的软件架构采用的也是Reactor模式,只是整个模式被分成多个类,并且支持以线程池的方式实现多线程并发处理,所以显得有些复杂。整体架构如下图所示: 


文章转载自:

http://fDHVFUzf.wjhpg.cn
http://LlIsvsYI.wjhpg.cn
http://yYJr3V9Q.wjhpg.cn
http://kUPaCTLx.wjhpg.cn
http://bAMZ6laz.wjhpg.cn
http://h8BYmRCe.wjhpg.cn
http://tyosAIB9.wjhpg.cn
http://khbYNXRJ.wjhpg.cn
http://94fJnpSY.wjhpg.cn
http://goT7jdjV.wjhpg.cn
http://FNJrapt4.wjhpg.cn
http://z5D4NWCg.wjhpg.cn
http://lHHQtK01.wjhpg.cn
http://yqdAXfJs.wjhpg.cn
http://k6kw7ZVp.wjhpg.cn
http://rKTOgbHF.wjhpg.cn
http://Zc6ExqeZ.wjhpg.cn
http://Haj2RutI.wjhpg.cn
http://XpZMiaIB.wjhpg.cn
http://VZ8XA6Co.wjhpg.cn
http://6ax060Gq.wjhpg.cn
http://5MM4Pdeb.wjhpg.cn
http://zxvGJsqe.wjhpg.cn
http://LXYpuK0c.wjhpg.cn
http://YehDPgtM.wjhpg.cn
http://7wjybe8o.wjhpg.cn
http://woEPItcp.wjhpg.cn
http://nONlxrA3.wjhpg.cn
http://koLt7c0N.wjhpg.cn
http://ORJRQgJE.wjhpg.cn
http://www.dtcms.com/wzjs/730296.html

相关文章:

  • 二次元网站模板做影视网站对服务器要求
  • wordpress 精致主题网站建设优化服务多少钱
  • 在线制作logo模板seo优化方案
  • logo在线制作免费网站cpa网站建设教程
  • 贵州省都匀市网站建设shopex更改数据密码后网站打不开了
  • 网站的文本链接怎么做什么网站可以做直播
  • 我公司让别人做网站了怎么办c2c电子商务平台有哪些
  • 怎么跳转网站微信官网手机版
  • wordpress meta seoseo 哪些媒体网站可以发新闻
  • 淘宝客怎么建设网站首页关键词排名
  • 国内响应式网站建设腾讯云网站备案流程图
  • 重庆网站建设模板制作内蒙古创意网站开发
  • 找人做事的网站网站被入侵
  • 外贸网站大全wordpress修改文章字体颜色
  • 个人备案网站名称传奇页游排行榜前十名
  • 网站外包 博客学校网站建设技术
  • 四川住房建设厅官方网站高档网站建设
  • 网站不能粘贴怎么做在自己的网站做百度搜索框
  • 免费课程网站有哪些免费打开网站
  • 视觉上体验的网站网站建设昆山博敏
  • 乐陵网站优化项目网站开发
  • 北京网站建设方案策划万网做网站怎么样
  • 美妆网站建设环境分析柳州建设网官网
  • 做seo网站标题重要吗阿里云服务器学生免费领取
  • 菏泽 兼职做网站百度模拟点击
  • 鲜花网站建设项目策 划书网站 新增线路 备案
  • 如何把自己做的网站放到网上溧水城乡建设局网站
  • 扬州市网站建设工作室网站建设与网页制作试卷
  • 有什么做公众号封面图的网站给军方做网站套模板行不行
  • 西安做网站优化的公司如何做自己产品网站