Linux下CS模式数据查询的UDP实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下CS模式数据查询的UDP实现

Linux下C/S模式数据查询的UDP实现 摘要 伴随着VOD视频点播技术的在KTV等娱乐场所的广泛应用,与之配套的管理系统也被推上了快速发展的轨道,通过这些系统人们可以对这些场所进行统一的管理,在方便顾客的同时也提高其自身的管理水平。目前视频点播系统主要以专用局域网络为主,在这样的网络结构中,要实现若干点播端与服务器之间大量数据的实时交互,C/S模式无疑为一种非常合适的实现模式,本文将详细阐述Linux下C/S模式数据查询的一种UDP实现方式。 关键词 Linux C/S模式 数据查询 UDP 三层模型 正文 一、概述 在早期的KTV系统中,我们在机顶盒端仅可以做一些比如点播歌曲、调节歌曲和麦克风音量、切歌、重唱等这些最基本的点歌操作,应该说在功能上比较单一。而随着KTV娱乐场所运营模式的改变和KTV相关技术的进步,在原来机顶盒点播系统的基础上,许多与之配套的管理系统也快速的发展了起来,正是这些配套管理系统的出现,才使得我们今天的机顶盒在功能上变得越来越强大,而酒水管理系统就是在这些配套管理系统中的一个典型代表。在KTV娱乐场所,通过机顶盒我们不仅可以直接对所在消费场所提供的酒水分类、酒水明细、消费账单等进行实时的查询,还可以进行酒水的点单、呼叫服务员等操作,而在场的场所管理人员则可以通过机顶盒直接进行退单、账单打折等操作,这在方便客户的同时也极大提高了场所的管理水平。而所有的这些操作都是通过机顶盒与后台的酒水管理系统的配合工作来实现的,两个系统之间采用了客户端与服务端的实现模式(即C/S模式),其中酒水管理系统为服务端,机顶盒为客户端,所有操作均由客户端发起,由服务端回应,这种工作方式就是我们在本文中要讲述的C/S模式数据查询。 二、传输协议选择 在KTV系统中应该说歌曲点播功能是其最主要的一项功能,当然音视频流的网络传输优先级也就最高,所以如果要进行音视频流之外的其他数据流的传输,则必须在保证不影响音视频网络传输的前提下进行,才能保证歌曲的点播功能不受影响。而目前在机顶盒端实现的酒水分类、酒水明细、消费账单等信息的实时查询操作由于传输数据量大、查询频繁,如果使用TCP协议进行传输的话,由于TCP协议本身是一种有连接的协议,相对于UDP协议而言系统开销大、传输速度慢,而TCP协议本身也存在有数据粘连等问题,从最大可能的减小查询数据流网络传输对音视频流网络传输的影响和降低软件的开发设计难度两方面考虑,这里我们将选择了系统开销小、传输速度快的UDP协议作为我们C/S模式数据查询的通信协议,并在使用中加入了适当的传输控制。 三、通信模型结构图 图1 模型结构图 在本文中我们将采用如上图所示的模型结构图所描述的模型来实现C/S模式数据查询的UDP实现,该模型共分为三层,从内向外依次为UDP套接字层(CUdpSocket)、UDP客户端层(CUdpClient)、UDP代理层(CUdpProxy),下面将对这三层的功能做一下大致说明: 1、UDP套接字层:该层在套接字的基础上实现了对数据发送接口的封装,并创建了独立接受线程负责对数据的实时接受。 2、UDP客户端层:该层以UDP套接字层为基础,实现了对单次查询数据发送和接受过程的封装以及对收包数据的分析。 3、UDP代理层:该层以UDP客户端层为基础,实现了对整个查询过程即若干单次查询的进一步封装。 四、对应类实现结构图 图2 对应类实现结构图 在该类实现结构图中,分别对三层模型所对应的CUdpSocket、CUdpClient、CUdpProxy类的主要成员变量、接口以及各个类之间的调用关系等进行了说明,在后面的程序具体实现中上述模型结构图及该类实现结构图,对整个模型的工作原理和调用流程做详细说明。 五、具体程序实现 1、启动服务 在模型启动之前首先要启动服务,也就是调用CUdpProxy类的StartService()接口,下面我们来看一下CudpProxy类StartService()接口的具体实现: int CUdpProxy::StartService() { //初始化收发包对pthread_cond_t数组 if (this-InitPackThreadCondArray() = 0) { return -1; } //创建CudpClient实例 m_pUdpClient = new CUdpClient(); if (NULL == m_pUdpClient) { return -2; } //Udp客户端启动服务 if (0 != m_pUdpClient-StartService (192.168.0.100, 5600, 8400, CUdpProxy::PackCondCallba

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档