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

手游传奇新开服网站网站开发的项目总结

手游传奇新开服网站,网站开发的项目总结,vi设计是设计什么东西,哈尔滨模板建站推荐服务器基本框架、I/O 模型、事件处理模式 一、服务器编程基本框架 虽然服务器程序种类繁多#xff0c;但其基本框架都一样#xff0c;不同之处在于逻辑处理。 二、五种 I/O 模型 阻塞/非阻塞、同步/异步#xff08;网络IO#xff09;_呵呵哒(#xffe3;▽#xffe3;)但其基本框架都一样不同之处在于逻辑处理。 二、五种 I/O 模型 阻塞/非阻塞、同步/异步网络IO_呵呵哒(▽)的博客-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/132637401?spm1001.2014.3001.5501 注意 ① 同步I/O: 阻塞I/O非阻塞I/O信号驱动I/O和I/O复用 - 指内核向应用程序通知的是就绪事件比如只通知有客户端连接要求用户代码自行执行              I/O操作 ② 异步I/O - 指内核向应用程序通知的是完成事件比如读取客户端的数据后才通知应用程序由内核完           成I/O操作 三、两种高效的事件处理模式 服务器程序通常需要处理三类事件I/O 事件、信号及定时事件。 有两种高效的事件处理模式Reactor 和 Proactor 同步 I/O 模型通常用于实现 Reactor 模式异步 I/O 模型通常用于实现 Proactor 模式 ① I/O 处理单元是服务器管理客户连接的模块。它通常要完成以下工作 等待并接受新的客户连接接收客户数据将服务器响应数据返回给客户端。但是数据的收发不一定在 I/O 处理单元中执行也可能在逻辑单元中执行具体在何处执行取决于事件处理模式。 ② 一个逻辑单元通常是一个进程或线程。它分析并处理客户数据然后将结果传递给 I/O 处理单  元或者直接发送给客户端具体使用哪种方式取决于事件处理模式。服务器通常拥有多个逻辑单元以实现对多个客户任务的并发处理。③ 网络存储单元可以是数据库、缓存和文件但不是必须的。④ 请求队列是各单元之间的通信方式的抽象。 I/O 处理单元接收到客户请求时需要以某种方式通知一个逻辑单元来处理该请求。同样多个逻辑单元同时访问一个存储单元时也需要采用某种机制来协调处理竞态条件。请求队列通常被实现为池的一部分。 1Reactor 模式 要求主线程I/O处理单元只负责监听文件描述符上是否有事件发生有的话就立即将该事件通知工作线程逻辑单元将socket可读可写事件放入请求队列交给工作线程处理。除此之外主线程不做任何其他实质性的工作。读写数据接受新的连接以及处理客户请求均在工作线程中完成。使用同步 I/O以epoll_wait为例实现的Reactor模式的工作流程是 主线程往 epoll 内核事件表中注册 socket 上的读就绪事件主线程调用 epoll_wait 等待 socket 上有数据可读当 socket 上有数据可读时 epoll_wait 通知主线程。主线程则将 socket 可读事件放入请求队列睡眠在请求队列上的某个工作线程被唤醒它从 socket 读取数据并处理客户请求然后往epoll 内核事件表中注册该 socket 上的写就绪事件当主线程调用 epoll_wait 等待 socket 可写当 socket 可写时epoll_wait 通知主线程。主线程将 socket 可写事件放入请求队列睡眠在请求队列上的某个工作线程被唤醒它往 socket 上写入服务器处理客户请求的结果 2Proactor 模式 Proactor 模式将所有 I/O操作都交给主线程和内核来处理进行读、写工作线程仅仅负责业务逻辑。使用异步I/O模型以aio_read 和 aio_wirte 为例实现的Proactor模式的工作流程是: 主线程调用 aio_read 函数向内核注册 socket 上的读完成事件并告诉内核用户读缓冲区的位置以及读操作完成时如何通知应用程序这里以信号为例。主线程继续处理其他逻辑当 socket 上的数据被读入用户缓冲区后内核将向应用程序发送一个信号以通知应用程序数据已经可用应用程序预先定义好的信号处理函数选择一个工作线程来处理客户请求。工作线程处理完客户请求后调用 aio_write 函数向内核注册 socket 上的写完成事件并告诉内核用户写缓冲区的位置以及写操作完成时如何通知应用程序主线程继续处理其他逻辑当用户缓冲区的数据被写入 socket 之后内核将向应用程序发送一个信号以通知应用程序数据已经发送完毕应用程序预先定义好的信号处理函数选择一个工作线程来做善后处理比如决定是否关闭 socket 3同步 I/O 模拟 Proactor 模式 使用同步 I/O 方式模拟出 Proactor 模式。原理是主线程执行数据读写操作读写完成之后主线程向工作线程通知这一”完成事件“。那么从工作线程的角度来看它们就直接获得了数据读写的结果接下来要做的只是对读写的结果进行逻辑处理。使用同步 I/O 模型以 epoll_wait为例模拟出的 Proactor 模式的工作流程如下 主线程往 epoll 内核事件表中注册 socket 上的读就绪事件。主线程调用 epoll_wait 等待 socket 上有数据可读。当 socket 上有数据可读时epoll_wait 通知主线程。主线程从 socket 循环读取数据直到没有更多数据可读然后将读取到的数据封装成一个请求对象并插入请求队列。睡眠在请求队列上的某个工作线程被唤醒它获得请求对象并处理客户请求然后往 epoll 内核事件表中注册 socket 上的写就绪事件。主线程调用 epoll_wait 等待 socket 可写。当 socket 上有数据可写时epoll_wait 通知主线程。主线程往 socket 上写入服务器处理客户请求的结果。 同步 I/O 模拟 Proactor 模式的工作流程
http://www.hkea.cn/news/14297568/

相关文章:

  • 马格南摄影网站网站建设投标方案
  • it网站设计培训华建集团上海建筑设计研究院
  • 自己如何做棋牌网站龙湖什么网站做宣传
  • 网站制作价格范围企业网页素材
  • 贵州建设厅网站dede网站站内推广方法
  • 装修网站怎么做的好处网站上怎么做星星评分
  • 网站怎么做伪静态页面如何进入正能量奖励网站
  • dedecms本地打开网站做ppt的网站叫什么名字
  • 网页模板建站系统做网站分类链接
  • 做网站下载别人的图算不算侵权在哪里可以找到做网站的公司
  • 偃师网站wordpress s3插件
  • aso榜单优化优化公司管理
  • 做网站运营话术中企动力免费做网站
  • 婚庆公司网站搭建网站定制案例微安电力
  • 桂林做网站电话号码辽宁网站建设专业学校
  • 杭州装饰网站建设方案系统优化有何作用
  • wordpress农业模板seoul national university
  • saas建站没有网站源代码么自己做国外网站
  • 做网站图片如何压缩图片淘客软件自动做网站
  • 网站建设找d云世家网站建设销售岗位职责
  • 如何做企业网站营销咸阳公司做网站
  • 推荐聊城做网站合肥网络公司
  • 怎么制作网站论坛模板泰安房产网
  • 企业购 网站建设wordpress 搜索mysql
  • 建筑作品集网站代做wordpress 写文章权限
  • 怎么做网站主页手机门户网站建设
  • 回收做哪个网站好些东莞常平有哪些好玩的地方
  • 网站专题素材asp.net 制作网站教程
  • 网站美工效果图怎么做美食网站开发的意义
  • 商务网站设计实训总结东莞阳光网官网手机版