当前位置首页 > 资格/认证考试 > 自考
搜柄,搜必应! 快速导航 | 使用教程  [会员中心]

大学卡拉ok点播系统设计

文档格式:DOC| 36 页|大小 544.50KB|积分 10|2022-06-10 发布|文档ID:104535234
第1页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 36
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 编号〔学号〕:061XXXX广 州 大 学毕业论文〔设计〕〔2010届本科〕题目 VOD卡拉OK点播系统院〔系〕计算机科学与教育软件学院专业:计 机 06 〔2〕XX:X X X指导X X X完成日期:20XX6月11日35 / 36VOD卡拉OK点播系统摘要 随着卡拉OK兴起与发展,卡拉OK点播系统由传统的碟影机方式发展成为现今的网络在线点播方式本文主要叙述了运用计算机平台达到卡拉OK在线点播的模拟 VOD卡拉OK点播系统的模拟实现以下几点:以C/S结构设计出客户端与服务端,通过IP/TCP等局域网通讯协议实现在线点播、通过socket网络编程达到服务端与客户端之间的通讯以及各种模拟功能的实现关键词 VOD;卡拉OK;在线点播系统ABSTRACTWith the rise and development of Kara OK, Kara OK system consists of the traditional disc-demand video player way into today's network online on-demand approach. This paper describes the use of computer platform to simulate on demand online karaoke OK.Demand VOD Kara OK system simulation to achieve the following: to C/S structure design client and server, through IP/TCP communication protocol such as LAN-line on-demand, network programming by socket server and client to achieve between communication and implementation of a variety of analog functions.KEYWORDSVideo on Demand; Kara OK; Online Demand System目录1前言.41.1 卡拉OK的起源与发展41.2卡拉OK点播系统的更新换代61.3 课题研究的意义61.4 研究方法及其实现要求71.4.1设计视频服务器71.4.2设计点播客户端71.4.3数据库设计71.4.4模拟环境72.开发环境的搭建及运行的分析和研究82.1 Visual Studio软件分析82.2 数据库SQL 200093.系统需求分析及数据库设计113.1 系统需求113.1.1 概要113.1.2 功能简介113.1.3 概要图123.1.4 系统概要流程123.2 数据库设计134.系统详细设计154.1 功能介绍154.2 编程知识点164.2.1 套接字164.2.2 多线程174.2.3类184.3 系统编程194.3.1 整体界面204.3.2 点播模块构建214.3.3 已点歌曲模块构建234.3.4 播放控制模块244.3.5 响应服务器模块264.3.6 服务端模块275.系统测试305.1 实施环境305.2 测试流程305.2.1文件共享设置、数据库信息编辑305.2.2服务端、客户端启动315.2.3点播、播放测试335.2.4对客户端的远程控制测试345.3 测试总结34参考文献35致36VOD卡拉OK点播系统1. 前 言1.1 卡拉OK的起源与发展卡拉OK最早是起源于日本,由于日本的风俗,男人如果回家过早的话,会让邻居们看不起,认为天天工作连个应酬都没,每天回家的太早成了旁人笑话的把柄,所以许多日本男人就在下班后聚集在酒吧或茶馆,聊天到很晚才回家,后来慢慢的他们觉得应该找点什么新的消磨时间的项目,就在酒吧里面边喝酒边用上电视机话筒等简单的可以用来唱歌的东西,后来随着科技的发展演变成现在的卡拉OK,后来传入,再由传入大陆,有了今天的卡拉OK的景象。

    在20世纪六十年代的舞会上,有传统的乐队为人们伴舞在这一时期已出现了歌手用歌声为人们伴舞的形式这就是第一次伴奏音乐与歌声分离成为两个独立部分 20世纪六十年代末期,盒式录音机问世以后,左〔L〕右〔R〕立体声磁带可录制两个音源,一路是伴奏音乐,一路是人声歌唱,人们可以用这种磁带学习流行歌曲的演唱当人们学会唱这首歌以后,人们就会关掉人声这路通道,而通过话筒亲自演唱这首歌曲这种娱乐活动首先在日本流行起来,日本人将此称为KARAOKE娱乐游戏,KARA是日本语"空"的意思,OKE是英文交响乐的缩写所以说KARAOKE游戏是日本人发明的 这种KARAOKE游戏在日本迅速流行起来,在社会上引起很大风波在一些酒吧、咖啡厅、歌舞厅,老板就辞掉了原来的乐队,而采用一套音响设备这样就受到大批电声乐队的不满,他们向娱乐圈和KARAOKE生产厂家提出抗议但是在按经济规律办事的日本,这些都是无济于事的这些乐队只好转业到广告业和电视剧制作业中去了 20世纪七十年代初期,录像机出现以后,用图像画面来解释歌曲的意境,形成了听觉视觉并举的综合艺术系统,并且有字幕的提示〔利用歌词镶边、变色的方法〕 20世纪七十年代末期,激光影碟机问世以后,这种设备都是数字电路,所以它的音频信号和视频信号要比录音机和录像机有很大的提高。

    影碟机和影碟的特点是频率响应宽,噪声低,失真度小,使音频和视频都达到了专业级的水准 20世纪八十年代末期,中国才出现了歌舞厅KARAOKE闯入中国的时间较晚,但是发展却很迅速1988年,出现了歌舞厅当时,有些饭店、酒楼,餐厅,白天进行餐饮营业,晚上,邀请专业艺术团体乐队,音响、歌手为客人演唱1989年,出现了KARAOKE歌舞厅,1990年便发展为100家,1991年又发展为200家,1992年发展为400家到1993年已发展为600家,直至1994年,歌厅、舞厅、KARAOKE厅、多功能厅,已达到800家加上各单位,各系统对开放的歌舞厅,共有千余家 KARAOKE包间起源于日本在日本,有些中老年人,怀念自己青春时的美好时光,通过演唱旧时的歌曲,抒发怀旧的情感,但又不便于在众人面前演唱,特为他们开辟了小型的KARAOKE包厢,使之如愿这种形式很快在日本流行起来,1991年,开始传入中国但在中国多为包间的形式 1992年,有些歌舞厅加装了摄像系统用编辑机可把自己演唱的镜头投放在屏幕上也可将它投影在屏幕的各种不同位置上目前,不少歌舞厅可把客人演唱的歌曲,制成录音磁带和录像带,提供给演唱者。

    20XX,中国生产出了世界上最小的便携式卡拉OK机——恋歌派,比日本号称世界最小的儿童便携式卡拉OK机"Hi-Kara" 还要小恋歌派是一款集听歌、看电影、唱歌、练歌、学歌、拍照等多种功能于一体的随身唱数码产品随着社会的发展进步,K歌已经不再需要走进歌舞厅、KTV包房了,恋歌派就达到了随时随地K歌的效果可能很多人对这种全新的K歌产品〔方式〕还不了解,所以目前普及的不是很完整,暂时还只限于珠三角地区1.2卡拉OK点播系统的更新换代点播系统主要经历了四个阶段的发展,分别如下:第一代卡拉OK系统:电脑+影碟机卡拉OK影碟机包房采用放置专用卡拉OK影碟的形式,卡拉OK影碟里含有大量的MIDI音乐第二代卡拉OK系统:电脑+影碟机+DJ〔操盘手〕系统包房采用电脑点歌,总控室采用影碟机,由专人负责播放客户的点播要求第三代卡拉OK系统:包房电脑+视频服务器每个包房配置一台电脑,DJ房只放置视频服务器,所有电脑组成一个局域网DVD影碟等歌曲录入到视频服务器的歌曲库中,包房通过电脑菜单选择歌曲,并从视频服务器下载歌曲文件到包房电脑硬盘或存中,用电影卡解码还原为AV信号第四代卡拉OK系统:机顶盒点歌系统 现阶段,虽然第四代卡拉OK系统成为了点播系统的发展趋势,但第三代的卡拉OK点播——包房电脑+视频服务器〔VOD在线点播〕在一段时期仍然成为了行业中的主流。

    1.3 课题研究的意义由于KTV已经成为人们娱乐消遣的一个重要方式,随着KTV行业的迅速发展,卡拉OK点播系统需求也变得更为广泛此题目的选定,可以使得研究者较为靠拢企业方面的系统开发技术,通过模拟某个客户需求进行需求分析、系统架构、系统集成和完善等工作,从而能学习到比较实用系统开发技术在理论和现实意义上,此选题可以让学生了解到相关技术,如以太网通讯及其协议、CS架构软件开发、数据库管理等对整个系统的集成和完善,进行尝试性研究同时,可以锻炼学生的编程能力和调试能力在就业方面来说,小型系统的需求活跃,通过次选题的研究,可以使学生打好基础,熟悉系统的快速开发模式,为将来就业提供了强力的技术知识支持1.4 研究方法及其实现要求分开两大模块,服务端和客户端实现方法如下:1.4.1设计视频服务器服务器负责接受各个房间电脑请求信号,调度歌曲文件,并将它们发送到有需求的房间去主要处理功能为:视频文件存储与发送、数据操作〔包括歌曲点播频率、公告信息、费率等〕、对客户端的响应处理〔包括锁定/解锁、显示公告等〕1.4.2设计点播客户端客户端主要实现:点播〔包括排行榜查找、拼音查找、分类查找〕、视频播放、播放列表操作,查找模块基于SQL数据库进行。

    1.4.3数据库设计主要以服务查找功能和视频文件存放目录检索功能,定义每首歌的属性,主要有:点播次数、编号、歌手、类型、存放目录等1.4.4模拟环境使用两台联网〔以太网〕计算机进行测试,测试服务端和客户端通讯及其响应,测试点播查询,测试视频文件的传输和播放等2. 开发环境的搭建及运行的分析和研究本次毕业设计采用了的开发工具及搭建环境为:Visual Studio 2005、SQL2000;两台或以上联局域网的windows 平台主机,其中一台安装了SQL2000数据库2.1 Visual Studio软件分析Visual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序Visual Basic、Visual C++、Visual C# 和 Visual J# 全都使用相同的集成开发环境 ,利用此 IDE 可以共享工具且有助于创建混合语言解决方案另外,这些语言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。

    此系列开发工具集成了强大功能创建满足关键性要求的多层次的智能客户端、Web、移动或基于Microsoft Office的应用程序使用Visual Studio 2005, 专业开发人员能够:   使用改进后的可视化设计工具、编程语言和代码编辑器,享受高效率的开发环境在统一的开发环境中,开发并调试多层次的服务器应用程序  使用集成的可视化数据库设计和报告工具,创建SQL Server 2005解决方案   使用Visual Studio SDK创建可以扩展Visual Studio IDE的工具   Microsoft为单独工作或在小型团队中的专业开发人员提供了两种选择,Visual Studio 2005 Professional Edition和用于Microsoft Office系统的Visual Studio 2005工具每种版本都在标准版的特性上进行了扩展,包括用于远程服务程序开发和调试、SQL Server2005开发的工具,以及完整的、没有限制的开发环境同时包含了.NET Framework 2.0,它是一种稳健的、功能齐备的开发环境,支持创建扩展Visual Studio集成开发环境的工具。

    本课题选用visual studio 2005中C#语言的windows 窗体开发出卡拉OK模拟系统此开发环境特点主要有以下:它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等总体来说是一个非常庞大的软件,甚至包含代码测试功能这个版本的 Visual Studio 包含有众多版本,分别面向不同的开发角色而Windows 窗体用于在 .NET Framework 上创建 Microsoft Windows 应用程序此框架提供一个有条理的、面向对象的、可扩展的类集,使您能够开发功能丰富的 Windows 应用程序另外,Windows 窗体可作为多层分布式解决方案中的本地用户界面有关更多信息,请参见 Windows 窗体介绍2.2 数据库SQL 2000SQL Server是微软公司开发的数据库产品,SQL Server 2000被广泛使用,很多电子商务、企业部信息化平台等都是基于SQL Server产品上今天的商业环境要求不同类型的数据库解决方案性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键除这些核心企业品质外,SQL Server 2000 还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。

    从数据管理和分析角度看,将原始数据转化为商业智能和充分利用 Web 带来的机会非常重要作为一个完备的数据库和数据分析包,SQL Server 2000 为快速开发新一代企业级的商业应用程序、为企业赢得核心竞争优势打开了胜利之门其中包含了一下特点: 高度的可伸缩性和可靠性,使用 SQL Server 2000 可以获得非凡的可伸缩性和可靠性通过向上伸缩和向外扩展的能力,SQL Server 满足了苛刻的电子商务和企业应用程序要求 向上伸缩,SQL Server 2000 利用了对称多处理器 系统SQL Server Enterprise Edition 最多可以使用 32 个处理器和 64 GB RAM  可用性,通过增强的故障转移群集、日志传送和新增的备份策略,SQL Server 2000 达到了最大的可用性SQL Server 2000 是 Microsoft .NET Enterprise Server 的数据管理与分析中枢SQL Server 2000 包括加速从概念到最后交付开发过程的工具集成和可扩展的分析服务,快速开发、调试和数据转换SQL Server 2000 带有交互式调节和调试查询、从任何数据源快速移动和转化数据、以及按 Transact-SQL 方式定义和使用函数等功能。

    您可以从任意 Visual Studio 工具以可视化方式设计和编写数据库应用程序 3. 系统需求分析及数据库设计3.1 系统需求3.1.1 概要 卡拉OK点播系统 运用C/S架构实现,语言为C#,以服务端--客户端模式,用2台或以上的联网电脑模拟工作〔分别是一台电脑运行服务端,一台或以上电脑运行客户端〕通过客户端登陆到服务端,并从数据库读取歌曲信息和路径,运用windows平台的文件共享协议,以歌曲文件路径未媒介进行歌曲数据传说并实现在客户端的在线播放3.1.2 功能简介 服务端: 服务端实现对客户端数据的处理与存储〔包括歌曲点播频率、公告信息、费率等〕通过数据库来进行数据存储;用户管理;实现对客户端进行通讯,达到锁定/解锁、显示公告,远程控制客户端的关闭等功能客户端: 客户端主要实现:点播〔包括排行榜查找、拼音查找、分类查找〕、呼叫模块、视频播放、播放列表操作,查找模块基于SQL数据库进行在客户端电脑存放视频数据3.1.3 概要图服务端客户端通讯协议锁定----解锁公告信息显示费率、时间计算客户端远程控制服务端响应模块视频播放点播模块播放列表操作排行榜查找歌名查找分类查找服务端信号响应模块用户登陆显示客户端控制模块歌手查找图3.1 VOD卡拉OK点播系统概要图3.1.4 系统概要流程开始启动主进程,创建监听进程对客户端进行监听判断客户端请求,返回相应信息和辨别请求的合法性并反馈到客户端开始启动主进程,创建socket并读取服务器IP地址并发送连接请求获取反馈信息,判断,若返回成功则进入待机界面,否则弹出参数设计界面连接请求反馈信息若客户端有连接资格,则把IP显示到列表,并绑定socket,继续调用监听线程客户端控制模块,进行消息传输、锁定/解锁系统待机,等候点播操作连接不成功,弹出网络参数窗体歌库〔数据库〕读取以歌曲存储地址URL为媒介通过windows文件共享协议读取文件并实现在线播放审核失败图3.2 系统概要流程3.2 数据库设计 为了实现全部浏览、歌名点播、歌手点播、类别点播和排行榜点播这五种点播方式,歌曲的数据的设置必须包含以下几个属性:歌曲ID、歌名〔name〕、歌曲类别〔leibie〕、已点次数〔yidiancishu〕等。

    其次,歌曲的读取是同过windows文件共享平台的路径寻找来实现的,所以必须设置一个歌曲路径属性〔path〕其中,歌曲ID设置为主键,并以1为单位每添加一条数据自增1的规则编号详细属性如下表:表3.1 数据库表设置列名数据类型长度备注IDint4主键、歌曲编号namechar20歌曲名authorchar10歌手leibiechar10类别pathchar130不为空、歌曲路径yidiancishuint4点播次数初始为0数据库截图1〔表设计〕:图3.3 数据库表设计截图数据库截图2〔表容〕:图3.4 数据库歌曲存储截图4. 系统详细设计4.1 功能介绍 客户端实现的功能主要以模块划分,有:点播模块、已点歌曲模块、窗体设置模块、播放控制模块、网络参数设置模块、通讯模块点播模块功能包括: <1>全部浏览 直接读取数据库上面的有效数据并显示到列表 <2>歌手点播 输入歌手并查询歌曲库中对应歌手的全部歌曲 <3>类别点播 输入类别并查询歌曲库中对应类别的全部歌曲<4>歌名点播 输入歌名并查询歌曲库中该歌曲<5>排行榜 按照点播次数从多到少排列,并显示到列表已点歌曲模块包括:<1>删除 将选定的歌曲从播放列表中删除<2>优先 将一首歌提前到播放列表的首位<3>切歌 将当前播放的歌曲切换成下一首歌<4>清空 清空播放列表窗体设置模块包括:<1>锁定/解锁 实现对客户端的远程控制<2>全屏播放 播放中才生效,使播放界面以全屏方式播放<3>全窗体播放 播放中才生效,使播放界面扩展到整个系统窗体播放控制模块包括:<1>暂停 控制播放器暂停播放<2>播放 控制播放器继续播放<3>下一首 相当于切歌操作,若播放列表为空,则不做动作<4>播放控制 对歌曲播放暂停或开始操作的同时进行窗体设置模块的调用,实现播放时各个模块不阻挡播放界面参数设置模块包括:<1>参数设置 进行客户端连接设定,如SQL、服务端IP设定<2>再次连接 更改参数后再次连接服务端进行登陆通讯模块包括: <1>监听模块 监听服务端发送的命令并做相应动作<2>连接模块 向服务端发送连接请求4.2 编程知识点4.2.1 套接字套接字,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程   应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。

    多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字的接口   区分不同应用程序进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议和使用的端口号Socket原意是 "插座"通过将这3个参数结合起来,与一个"插座"Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务   Socket可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定与网络驱动建立关系此后,应用程序送给Socket的数据,由Socket交网络驱动程序向网络上发送出去计算机从网络上收到与该Socket绑定IP地址和端口号相关的数据后,由网络驱动程序交给Socket,应用程序便可从该Socket中提取接收到得数据,网络应用程序就是这样通过Socket进行数据的发送与接收的  值得注意的是IP地址都是32位地址,这是IP协议版本4〔简称Ipv4〕规定的,目前由于IPv4地址已近耗尽,所以IPv6地址正逐渐代替Ipv4地址,Ipv6地址则是128位无符号整数。

    假设第二个程序被加入图1的网络的Host B中,那么由Host A传来的信息如何能被正确的传给程序B而不是传给新加入的程序呢?这是因为每一个基于TCP/IP网络通讯的程序都被赋予了唯一的端口和端口号,端口是一个信息缓冲区,用于保留Socket中的输入/输出信息,端口号是一个16位无符号整数,围是0-65535,以区别主机上的每一个程序〔端口号就像房屋中的房间号〕,低于256的短口号保留给标准应用程序,比如pop3的端口号就是110,每一个套接字都组合进了IP地址、端口、端口号,这样形成的整体就可以区别每一个套接字4.2.2 多线程在一个程序中,这些独立运行的片断叫作"线程"〔Thread〕,利用它编程的概念就叫作"多线程处理"多线程处理一个常见的例子就是用户界面利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应   最开始,线程只是用于分配单个处理器的处理时间的一种工具但假如操作系统本身支持多个处理器,那么每个线程都可分配给一个不同的处理器,真正进入"并行运算"状态从程序设计语言的角度看,多线程操作最有价值的特性之一就是程序员不必关心到底使用了多少个处理器。

    程序在逻辑意义上被分割为数个线程;假如机器本身安装了多个处理器,那么程序会运行得更快,毋需作出任何特殊的调校   根据前面的论述,大家可能感觉线程处理非常简单但必须注意一个问题:共享资源!如果有多个线程同时运行,而且它们试图访问相同的资源,就会遇到一个问题举个例子来说,两个进程不能将信息同时发送给一台打印机为解决这个问题,对那些可共享的资源来说〔比如打印机〕,它们在使用期间必须进入锁定状态所以一个线程可将资源锁定,在完成了它的任务后,再解开〔释放〕这个锁,使其他线程可以接着使用同样的资源多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率线程是在同一时间需要完成多项任务的时候实现的实现的方法有:·创建线程:   创建一个新的Thread对象的实例Thread的构造函数接受一个参数:   Thread DummyThread newThread< newThreadStart >; ·执行线程:使用Threading命名空间里的start方法来运行线程:DummyThread.Start <>;   ·组合线程:   经常会出现需要组合多个线程的情况,就是当某个线程需要其他线程的结束来完成自己的任务。

    假设DummyThread必须等待DummyPriorityThread来完成自己的任务,只需要这样做:DummyPriorityThread.Join<> ;  ·暂停线程: 使得线程暂停给定的秒DummyPriorityThread.Sleep<

    调用类:using System.Collections.Generic;using SystemponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using System.Media;using System.Net;using System.Net.Sockets;using System.IO;using System.Threading;4.3 系统编程4.3.1 整体界面以单窗体,控制控件的显隐及其移动等实现所需要的效果,整体窗体如下图:图4.1 客户端系统界面截图图4.2 服务端界面截图4.3.2 点播模块构建通过菜单栏分别调用了全部浏览、歌手点播、类别点播、歌名点播、排行榜界面以listview为主,通过一定的筛选条件进行对数据库读取歌曲信息读取信息包括了歌名、歌手、类别、路径〔不显示〕,ID号为自动生成选歌时候,双击该歌曲会自动添加到已点歌曲列表中,点播界面如下图:图4.3 点播界面截图关键代码如下: #region 查询情况// searchflag 为查询方式的信息传递标志1表示歌手查询;表示歌名查询;表示类别查询privatevoid button_search_Click {string str = dianbo_search.Text.ToString<>;if // {SqlDataReader sqlread = sqloperate.getread<"select name,author,leibie,path from movies where author = '" + str + "\'">; yidian_table_display; }elseif {SqlDataReader sqlread = sqloperate.getread<"select name,author,leibie,path from movies where name = '" + str + "\'">; yidian_table_display; }elseif {SqlDataReader sqlread = sqloperate.getread<"select name,author,leibie,path from movies where leibie = '" + str + "\'">; yidian_table_display; } } #endregion #region 双击添加已点歌曲privatevoid listView_show_MouseDoubleClick {ListViewItem temp = newListViewItem; temp.SubItems.Add; temp.SubItems.Add;//if>this.listView_yidian.Items.Add;////////更新点播次数,数据库对应歌曲点播次数列项+1;string str = "update movies set yidiancishu = yidiancishu+1 where name = '" + listView_show.SelectedItems[0].SubItems[1].Text + "\'"; // sqloperate.getcom; } #endregion4.3.3 已点歌曲模块构建通过listview控件保存用户选择歌曲的信息并以其为播放列表,其中从点歌模块中传递的歌曲信息有:歌名与歌曲路径

    功能主要是对播放列表的编辑操作,有切歌、优先、删除、清空如下图: 图4.4 已点界面截图部分关键代码:privatevoid bt_ctr_youxian_Click////// {if { MessageBox.Show<"别忘了先选择要插队的歌曲哦O<∩_∩>O~">; return; }else {ListViewItem item = listView_yidian.SelectedItems[0]; listView_yidian.Items.Remove; listView_yidian.Items.Insert<0, item>; } }4.3.4 播放控制模块主要实现对播放歌曲时候对界面的所有控件进行一个排布和显隐控制,达到以规则比例播放歌曲,同时还可以对播放控件进行一个暂停、开始、全屏等操作。

    部分关键代码如下: #region 播放器控制publicvoid ctr_player/////0代表停止;代表播放;代表暂停 {if { wmvplayer.Ctlcontrols.stop<>; playerstats = 0; }elseif {if { wmvplayer.Ctlcontrols.play<>; }else { wmvplayer.Width = 1016; wmvplayer.Left = 0; groupBox_dianbo.Visible = false; groupBox_yidian.Visible = false; wmvplayer.URL = listView_yidian.Items[0].SubItems[2].Text.ToString<>.Trim<>; playerstats = 1; bt_ctr_StartPlay.Text = "暂停播放"; bt_ctr_StartPlay.Visible = false;string nowplay, nextplay; nowplay = listView_yidian.Items[0].SubItems[1].Text.ToString<>.Trim<>;if { nextplay = "无"; }else { nextplay = listView_yidian.Items[1].SubItems[1].Text.ToString<>.Trim<>; } music_tips.Text = "正在播放: [" + nowplay + "], 下一首歌曲是: " + nextplay + "!"; listView_yidian.Items.Remove; } }else { wmvplayer.Ctlcontrols.pause<>; bt_ctr_StartPlay.Text = "开始播放"; playerstats = 2; } } #endregion4.3.5 响应服务器模块负责连接和反馈到服务器,并监听服务器发来的指令和实现相应动作,如锁定/解锁、费用显示等。

    部分关键代码如下:publicvoid listenner<> {int m_port = 8889;/////////TcpListener m_listener = null;IPAddress ServerIP = IPAddress.Parse.ToString<>>; m_listener = newTcpListener; m_listener.Start<>;byte[] packetBuff = newbyte[maxPacket];Socket newClient = m_listener.AcceptSocket<>; newClient.Receive;while {if { newClient.Receive;string returndata = Encoding.UTF8.GetString.TrimEnd<'\0'>.Trim<>;if { locked_client<1>; music_tips.Text = "尊敬的客户,您好,您的消费金额已满,现在系统被锁定!"; newClient.Close<>; packetBuff = newbyte[maxPacket]; newClient = m_listener.AcceptSocket<>; }elseif { locked_client<2>; music_tips.Text = "尊敬的客户,您好,已经为您解锁,祝您愉快!"; newClient.Close<>; packetBuff = newbyte[maxPacket]; newClient = m_listener.AcceptSocket<>; }else { music_tips.Text = "尊敬的客户,您好,您已经消费了" + returndata + "元。

    "; newClient.Close<>; packetBuff = newbyte[maxPacket]; newClient = m_listener.AcceptSocket<>; } } } }4.3.6 服务端模块 负责接收并处理客户端的连接请求,并使用listview控件显示各个客户端的IP,使用状况和登录时间扩展功能是计算单独客户端的消费金额并反馈到客户端进行对客户端的锁定解锁操作部分关键代码://///////客户端的反馈函数publicvoid ResponseClient {TCP_Connection con = newTCP_Connection;TcpClient tcp_response = con.Connect<>;if { return; }else { NetworkStream netstream = tcp_response.GetStream<>; string m_SendData; byte[] packetBuff = newbyte[maxPacket];if {return; }elseif { m_SendData = "client_locked::true";//发送锁定命令 packetBuff = EncodingASCII; netstream.Write; }elseif { m_SendData = "client_locked::false";//发送解锁命令 packetBuff = EncodingASCII; netstream.Write; }elseif { m_SendData = paymenoy; packetBuff = EncodingASCII; netstream.Write; } tcp_response.Close<>; }///////费用计算与反馈函数privatevoid count_Click {int feilv = int.Parse.Trim<>>;string GetLoginTime = listView_client.SelectedItems[0].SubItems[2].Text.ToString<>;TimeSpan timeused =DateTime.Now.Subtract>;double fen = timeused.TotalMinutes;int payed = Convert.ToInt32; paymenoy = payed.ToString<>.Trim<>; listView_client.SelectedItems[0].SubItems[3].Text = paymenoy+"元";string select_username = listView_client.SelectedItems[0].SubItems[0].Text;IPAddress client_ip = IPAddress.Parse;int port = 8889;int flag = 3; ResponseClient; }5. 系统测试5.1 实施环境 实施环境主要是一个以windows平台组成的局域网,每台计算机有自己的固有IP,并安装和设置了windows文件共享协议和IP/TCP网络协议,保证每台计算机能访问到对方的共享文件夹。

    每台计算机必须安装有Microsoft .NET Framework 2.0 插件 服务端需要一到两台计算机放置服务端、数据库和歌曲客户端放置到服务端所在计算机或者另外的计算机5.2 测试流程5.2.1文件共享设置、数据库信息编辑 首先,在歌曲所在的计算机进行文件的共享设置: 打开歌曲所在的文件夹,右键选择属性,在共享一栏下面网络共享和安全处选择相应的操作,如下图图5.1 文件共享设置截图 然后是数据库信息的编辑:进入企业管理器后,在movie表的信息登录歌曲信息的路径列编辑歌曲路径,例子如下图:图5.2 路径信息编辑例5.2.2服务端、客户端启动 在测试环境满足的情况下,服务端必须比客户端先运行,客户端的网络参数必须设置好,如服务。

    点击阅读更多内容