欢迎来到天天文库
浏览记录
ID:55936594
大小:508.00 KB
页数:4页
时间:2020-06-16
《基于IOCP的桌面广告投放系统设计与实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、ISSN1009-3044E—mail:xsjl@dnzs.net.caCompu~rKnowledgeandTechnology电脑知识与技术http://www.dnzs.net.cnVo1.10,No.22,August2014Tel:+86—551—6569096365690964基于IOCP的桌面广告投放系统设计与实现褚凯,牛红岩,王志田(装甲兵学院通信指挥教研室,安徽蚌埠233050)摘要:为满足系统对服务端的性能要求,采用了完成端口模型,介绍了完成端口的工作原理,给出了系统的工作流程,对关键问
2、题进行了分析,设计了服务端的通信框架,实现了对大量并发客户的桌面投放系统。关键词:完成端口;多线程;信息重组;投放系统中图分类号:TP311文献标识码:A文章编号:1009-3044(2014)22-5213-04DesignandImplementationofDesktopAd.DeliverSystemBasedonInputandOutputCompletionPort(IOCP)CHUKai,NIUHong—yan,WANGZhi—dan(Dept.ofCommunicationsandComma
3、ndTeaching,ArmoredForceInstitute,PLA,Bengbu233050,China)Abstract:InordertOmeetrequirementsoftheperformanceofcomlTlunicationserverfortheDesktopAd.DeliverSystem,wemakefulluseofIOCPmode1.ThispaperintroducestheworkingprincipleoftheIOCP.Wehasanalyzedthekeyprobl
4、ems,anddesignthecommunicationframeoftheserver.ThispaperhasimplementedtheDesktopAd.DeliverSystemfurmulticlients.Keywords:IOCP;multi—thread;restructuredinformation;dehversystem随着经济和网络的不断发展,桌面广告投放系统已经成为广告宣传的重要方式。个人电脑已经成为办公、收银等处理业务的客户终端,客户终端桌面也是一张名品。利用桌面广告投放系统
5、可将这些客户终端的桌面设置为统一形式,无形中加大了宣传力度。桌面广告投放系统采用C/S模式,核心是解决一对多的大并发网络连接问题】。为了解决客户端大量网络连接服务端的并发问题,本系统采用完成端口IOCP(I/OCompletionPort)模型进行开发。IOCP是微软在Winsock2.0中引入的网络编程模型。它是目前编写高性能,易扩展的C/S网络服务器中最好网络模型。1桌面广告系统结构桌面广告系统采用C/S网络模型并基于互联网实现服务端和客户端的网络通信。桌面广告系统包括客户端、服务器端和互联网,客户端为
6、需要设置桌面广告的计算机,服务端为产生广告桌面的服务器,通常架设在个人计算机上。系统结构如图1所示。图1桌面广告系统结构2IoCP机制的工作原理完成端口fiocP)的核心原理就是将绑定到IOCP的socket发出的异步I/O请求投递到消息队列中,利用一定数量的工作线程从消息队列中取出消息并进行处理,并在工作者线程中返回中间数据。IOCPI作框架如图2所示。2.1完成端口完成端口是windows的内核对象,称其为完成端口,是因为系统在网络I/0操作“完成”之后才会发出通知。在接到系统的通知收稿日期:2014—
7、07—09作者简介:褚凯(1987一),男,安徽怀远人,讲师,研究生,主要研究方向为通信指挥;牛红岩(1972一),男,山西长子人,讲师,研究生,主要研究方面为通信指挥、仿真技术。本栏目责任编辑:谢媛媛#软件设计开发'"5213ComputerKnowledgeandno电脑知识与技术第10卷第22期(2014~8,EJ)SOCKETJ:~象IOCP图2IOCP工作框架的时,其实网络操作已经完成,此时,系统已经自动完成网络数据的接收(而不是像传统socket是有网络数据到来)或者系统已经自动接受了客户端的连
8、接请求等等,应用程序的工作就是直接处理接收的网络数据或者判断新连人的客户端。完成端口的实际处理方式是:依据CPU数量N,建立2*N个线程。这些线程能够充分利用CPU资源,从某一个公共消息队列中循环读取数据,当队列中无数据时,一直处于等待状态。当客户数据或请求到来时,应用程序将客户请求投放到该公共消息队列中。线程们依次逐个从该消息队列中取出用户数据并进行处理。这种处理数据的方式就彻底解决了异步通信中的负载均衡问题。
此文档下载收益归作者所有