- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
完成端口在远程数据采集服务器上应用
完成端口在远程数据采集服务器上应用
[摘要]详细说明了套接字I/O模型完成端口的基本概念和使用方法,同时结合实际远程数据采集服务器程序给以系统的设计和实施,对相关项目的设计人员和实施人员具有很好的参考价值。
[关键词]完成端口 线程池 远程数据采集
中图分类号:TP3 文献标识码:B 文章编号:1002-6908(2007)0820058-01
远程数据采集系统主要是指基于C/S结构,通过TCP/IP协议网络将客户端采集的数据传送到中心服务器数据库中,构成一个具有一定规模的网络远程数据采集系统。客户端主要通过数据采集设备采集原始数据,并进行本地存储和相关计算,再将相关数据通过基于TCP/IP协议的网络传入中心服务器,中心服务器接收客户端的所有数据,把数据存入数据库,同时把数据进行计算、分析,最后进行数据发布。
远程数据采集系统与传统的数据采集系统相比具有不受地理环境、气候、时间的影响等优点,已经广泛采用于石油、电力、水利、公安、交通、安防等行业。
一、中心服务器网络通信需要解决的问题
中心服务器需要同时接收几十个数据采集客户端原始数据和相关计算后的数据,数据量非常的大,这样对中心服务器的网络通信模型和数据库存储的设计提出了很高的要求,那么,如何在Windows操作系统上搭建一个高性能的服务器架构,同时实现高数据吞吐量的基于TCP/IP协议的网络通信模型是我们主要关心的问题。
二、完成端口介绍
完成端口是最近几年比较流行的套接字I/O模型,也是现在基于windows系统服务器普遍采用的通信技术,在Windows提供的套接字I/O模型中完成端口是能实现最佳系统性能的模型,完成端口是windows系统一个内核对象,是Windows一种I/O构造机制,它采用了接受消息响应与处理消息过程相分离的做法,这对于管理为数众多的套接字、提升系统性能尤为重要。
实现简单的服务器完成端口操作有以下几步:
(一)创建完成端口,判断CPU个数,给完成端口创建一定数据量的线程;
(二)创建监听套接字,与本地IP绑定,在某个端口上监听传入的连接请求;
(三)使用accept接受连接请求;
(四)创建一个数据结构,用于容纳单句柄数据、单I/O操作数据和接受的套接字句柄;
(五)将accept返回的套接字和完成端口相关联,通过Complerion
Key参数,将单句柄数据结构传递给完成端口;
(六)在已接受的连接上进行I/O操作,线程会为I/O请求提供服务;
(七)重复3-6,直至服务中止。
服务器要在很短的时间里能响应客户端的连接,一个非常关键的地方是AcceptEX函数的调用,而不调用accept接受连接,AcceptEX是唯一能够通过重叠I/O来接受客户端的连接的winsock函数,此函数的真正意义在于客户端连接之前就已经把所需的资源创建完成,并实现了重叠接受客户端连接,下面服务器程序将详细说明了AcceptEX的使用方法:
完成端口此项技术的本身并不复杂,开发出一个具有一定响应规模服务器程序也不是很难,但在设置、合理的进行重叠调用时,服务器程序想很好的控制未分页内存池资源还是比较困难,要想控制好未分页内存池资源,服务器程序系统的框架模型设计尤为关键,另外一个方面,完成端口应用比较灵活的地方是它可以和任何一个处于监听和连接的socket进行绑定,而与完成端口相对应的线程就可以处理来自此socket的相关事件消息,这一点在开发接收大量的不同客户端和不同数据类型时尤为重要。在只有一个完成端口监听的条件下,通过它我们可以把不同类型的客户端连接分配到其它的完成端口上,这样使服务器程序框架设计就非常的清晰和有序。
三、完成端口在远程数据采集服务器上的应用
在基于一个C/S结构的网络系统中,网络通信技术是进行整个系统开发所必备的关键技术,一般情况下,客户端的系统任务量并不多,所以客户端系统网络性能的要求并不高,对于一个要处理成千上万个连接或高数据吞吐量通信任务的服务器来说,对服务器系统的性能要求就高了很多,特别是对客户端的响应时间、连接的成功率以及资源的控制都非常的重要。服务器采用的通信策略一般有两种,一种为高吞吐率,这种策略限制最大连接数,并且连接数不多,注重的是每个连接的数据吞吐量,必须一直保持足够的接收和发送操作用于投递,锁定每个重叠I/O的内存,另一种是最大连结数,这种策略注重的是连接的数量,放弃每个连接的高吞吐量,重叠I/O上的内存管理的比较复杂,这里不加详述。
在远程数据采集系统中,采集的数据往往有很多种,而它们的数据长度和数据格式的差别非常大,如果放到一个完成
您可能关注的文档
最近下载
- 《电气装置安装工程接地装置施工及验收规范+GB+50169-2016》详细解读.pdf
- THKA多回路智能工业调节器.PDF VIP
- 2025年广西专业技术人员继续教育公需科目(二)答案.docx VIP
- NDS世界树迷宫流程攻略及基础知识.pdf VIP
- 山西煤炭运销集团三百子煤业有限公司120万ta矿井兼并重组整合项目及配套120万ta洗煤厂环境影响报告书简本.doc VIP
- 苏州石刻《天文图》文字.pdf
- 中国气悬浮离心压缩机行业市场占有率及投资前景预测分析报告.pdf VIP
- 米家米家智能蒸发式冷风扇使用说明书.pdf
- 薄层砌筑和薄层抹灰工程施工技术方案.docx VIP
- 2024-2025学年中职语文基础模块 下册高教版(2023)教学设计合集.docx
文档评论(0)