二级课题报告_第1页
二级课题报告_第2页
二级课题报告_第3页
二级课题报告_第4页
二级课题报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软软软软 件件件件 学学学学 院院院院实践环节设计实践环节设计课程名称:课程名称: 课题名称:课题名称: 专专 业:业: 班班 级:级: 学学 号:号: 学生姓名:学生姓名: 指导教师:指导教师: 年年 月月 日日中原工学院软件学院中原工学院软件学院实实践践成成果果三三 设设计计任任务务书书姓姓 名名 JAVA 专业 软工卓越 111 班题题 目目手机与 PC 的语音通信系统的开发设设计计任任务务开发一个手机与 PC 的语音对讲系统,包括客户端与服务端:1. 客户端:输入对方 IP 和端口号连接目的主机,并接受、发送信息2. 服务端:等待客户端连接并接受、发送信息开发工具:eclipse Mi

2、crosoft Visual Studio 2010(客户端由 C#编写) 时时间间进进度度项目设计(10 月 1011 月 01):在老师的指导下自主学习和钻研问题,明确设计要求,找出现实方法。按照需求分析、总体设计、详细设计几个步骤进行。代码编写(11 月 0212 月 21):根据设计分析方案编写代码,然后调试该代码,实现课题要求的功能。测试总结(12 月 2412 月 27):总结设计工作,写出课程设计说明书,包括需求分析、总体设计、详细设计、编码、测试的步骤和内容。原原 主主始始 要要资资 参参料料 考考与与 文文 献献01梁红敏.C#语言程序设计 M:机械工业出版社出版.2011.

3、1102Cay S.Horstmann&Cary Cornell.Android 核心技术M:机械工业出版社. 2012.3指导教师签字:指导教师签字: 年年 月月 日日手机与 PC 的语音通信系统摘 要一直以来,空间上的距离都是人们彼此相互交流的最大障碍。缩短彼此之间空间上的距离,使得天涯若比邻,就成了人们迫切的愿望。随着计算机网络技术的发展,人们不再满足仅仅依靠收发电子邮件来进行交流, 因此语音聊天技术应运而生,它是网络成熟以来的在线通讯方式,为网络用户提供一个实时语音交流聊天的平台。在企业市场,语音对讲对企业的发展也产生重要的影响,企业内部人员的即时通讯对公司业务的运行也发挥着良好的作用

4、,它的实现可使得用户更有效的信息交流,手机与 PC 的语音对讲系统的设计与实现对于人们的交流起到很明显的作用。本文详细的论述了手机与 PC 的语音对讲系统的系统设计和实现的全过程,在论述过程中,主要分五大部分。第一部分主要包括项目分析、相关背景和构架和对开发工具进行了相应的介绍。第二部分是对系统需求分析及各环节的需求分析。第三部分是对手机与 PC 的语音对讲系统功能的分析和详细设计,该部分是本文的主体,在这一部分,介绍了本系统设计方案的实现过程,经过论证得到系统模块功能。第五部分是系统的实现和测试。本文通过对以上五部分的论述,使系统各功能基本完成。关键词: Android; 语音网络传输;C/

5、S目 录摘摘 要要 .1第第 1 章章 项目分析项目分析 .11.1 问题描述 .11.2 技术分析 .1第第 2 章章 设计与需求设计与需求 .22.1 设计分析.22.2 可行性分析.22.3 系统性能需求.22.4 系统运行需求 .3第第 3 章章 实现实现 .43.1 客户端(CLIENT).43.1.2 代码 .93.2 服务端(SERVER).103.2.1 服务端界面 .11第第 4 章章 有待实现功能有待实现功能 .194.1 预期功能 .194.2 实现功能 .19第第 5 章章 结束语结束语 .21 手机与 PC 的语音通信系统0第 1 章 项目分析我们知道,21 世纪的一

6、些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。要实现信息化就必须依靠完善的网络,网络可以非常迅速地传递信息。因此网络时代已经成为信息社会的命脉和发展知识经济的重要基础。对于用户来说,如何在电脑上接收语音信息成了我们迫切想要实现的功能基于局域网的即时通信工具,实际上是互联网之间的通讯开发技术已经比较成熟。即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、 游戏和搜索等多种功能。而如今越来越多的人们选择语音聊天工具是有一定目的的,语音对讲的实现使得用户更加方便快捷的进行通讯,手机与 PC 的语音对讲系统属应用系统。根据目的 IP和端口号寻找目的主机。本系统将实现

7、手机与计算机之间的通信,并且操作简单。网络通信系统分为两大模块,一是客户端,另一是服务端。客户端可以根据 IP 和端口号寻找目的主机,并连接目的主机。服务端可以等待客户端的连接,不需要对服务端做任何操作,只需连接后将信息直接发送给客户端。为了用户的方便此系统不需要登录名和密码,直接可以运行。1.1 问题描述近年来,随着全球信息化进程的不断发展,网络也在飞速发展。出于高效、快速地处理 各种事务的目的,越来越多的企业在其内部使用局域网来进行工作。 在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。员工可通过局域网聊天软件,企业员工可以随时的进行即时消息传递,所以手机

8、与 PC 之间的语音对讲系统更加可以得到有效的利用,本系统采用基于 TCP 协议的局域网通信设计与实现的方法。它的实现无需对企业原有的局域网硬件进行任何改动,具有实现成本低廉的优点,使得用户更加有效的交流。1.2 技术分析本项目采用 C/S 模式实现手机和 PC 之间的通信,手机通过 Server 的 IP 和端口号找到主机并建立连接进行通信。发送端通过 Serversocket 和主机建立连接,服务端通过accept 方法阻塞式接收发送端的信息。并且接收端开启新的线程来接收数据。 手机与 PC 的语音通信系统1第 2 章 设计与需求2.1 设计分析手机与 PC 语音对讲系统系统基于 TCP

9、协议传输,通过用户输入 IP 和端口号连接目的主机。手机与 PC 语音对讲系统客户端分为一下五点:1. 界面分为输入框和几个功能按钮并且接收框不可写,输入框在连接成功前不可写。2. 可以通过点“录音”按钮录音, “暂停”按钮暂停“播放”按钮播放, “发送”按钮发送信息, “更新”按钮更新接收语音。3. 利用多线程来监听端口是否有信息发送。4. 当客户端断开连接时,服务端重新监听是否有客户端重新连接。5. 客户端默认端口号 1234。手机与手机与 PC 语音对讲系统服务端分为一下四点:1. 必须首先开启服务器,等服务器连接之后才能进行信息的接收,录制保存与发送。2. 界面分为一个列表,一个对话框

10、,两个输入框可输入手机 IP 以及其端口号,按钮与客户端相比少了一个更新多了一个放弃。3. 播放有其专用的播放器。4. 服务端默认端口号为 1234。5. 时间会在语音录取是开启,录音结束时间关闭。2.2 可行性分析技术可行性:本系统利用 eclipse 作为系统客户端开发环境,它提供完善的指令 控制语句、类与对象的支持及丰富代码的模块化要求,而代码模块的提供非常有利于以后对新系统的扩展与修改。运行可行性:本系统为一个小型的局域网聊天系统,所耗费的资源非常小,现在一般的电脑无论是硬件还是软件都能满足条件。因此,本系统在运行上是可行的。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满

11、足的。2.3 系统性能需求实用性:为局域网聊天提供方便,有效进行作业管理。 手机与 PC 的语音通信系统2操作简单:笨系统应该适用于不同水平的使用者,包括事业单位和企业文化,同时系统不应太复杂和繁琐,因此要求系统的操作尽可能简单易行。绿色软件:本系统安装起来直接方便快捷。代码可读性好:文中的代码将尽可能简洁,易懂。2.4 系统运行需求服务端运行环境:Windows 7、2000、XP、2003 客户端运行环境:Android 2.3 以上硬件环境:CPU 400MHz 以上,内存 64MB 以上 手机与 PC 的语音通信系统3第 3 章 实现本系统分为客户端和服务端两部分,客户端主要实现寻找目

12、的主机,然后与主机进行连接,连接之后进行语音的录制,系统自己保存语音,用户输入 IP 和端口号连接服务器之后发送语音信息和接收由 PC 传过来的数据。服务端主要是等待客户端的连接,并接受发送数据。3.1 客户端(Client)客户端有一下几方面实现:1.客户端通过 GetIp 方法从界面中获取用户输入的 IP 和端口号,将 IP 地址和端口号作为参数传给 Socket()方法,让 Socket 创建一个流套接字试图连接目的主机。如果能成功连接目的主机则显示“连接成功” ,若长时间没有找到目的主机则显示“IOException” 。流程如图 3.1 所示图 3.1 连接客户端流程图 手机与 PC

13、 的语音通信系统42.用户点击“录音”按钮开始录需要发送的语音,点击“停止”按钮停止录音,点击“发送”按钮将语音发送给指定的对象。具体实现:当有数据套字节时使用 getOutputStream()方法从 Socket 中读取套字节,赋给 OutputStream。使用 ObjectOutputStream 从 OutputStream 中获取数据流,将数据流打印到控制台。 流程如图 3.2 所示图 3.2 发送语音流程图3.1.1 界面1.客户端主界面如图 3.3,IP 框用于填写需要连接的主机的 IP 地址;端口用于 手机与 PC 的语音通信系统5填写服务端所监听的端口号,默认是 1234;

14、填写 IP 和端口号后点击连接程序会自动尝试连接目的主机;中间空白区是接收信息,和已发送信息的回显;当连接成功后发送区才是可编辑的。图 3.3 客户端界面2.客户端连接成功界面如图 3.4。当输入正确的 IP 地址点击连接按钮后程序会在接收框显示“正在连接” ,当成功连接目的主机后接收框显示“已经连接” 。Server 端会发送信息“连接服务器成功”提示 Client 可以向 Server 发送信息。若输入IP 或者端口号与 PC 的 IP 不符合则不能连接服务器,系统报错。 手机与 PC 的语音通信系统6图 3.4 客户端连接成功界面客户端录制语音完成如图 3.5 所示,在显示区会显示录制成

15、功的语音的录制时间,选中显示区的语音后面的对钩,即可将显示区语音发送到 Server 并在接受框回显。空白区域中的语音显示条是服务端端发送出去的语音,标明存储位置以及录音时间。 手机与 PC 的语音通信系统7图 3.5 客户端语音录制成功界面3.客户端接收信息成功界面如图 3.6,当 Server 发送信息时,客户端可以自动接收此信息并显示到接受框,空白显示区所显示语音条就是由服务端发送的语音。 手机与 PC 的语音通信系统8图 3.6 客户端接收语音成功界面3.1.2 代码 InputStream inPut = client.getInputStream(); OutputStream o

16、utPut = client.getOutputStream(); readLen = new FileInputStream(file); ByteArrayOutputStream ow = new ByteArrayOutputStream(); / 2. 将文件内容写到Socket的输出流中 int count =0; int buffersize= 256; int fileLen=0; buf = new bytebuffersize; while (count = readLen.read(buf) 0) 手机与 PC 的语音通信系统9 fileLen = fileLen + c

17、ount; String strLen =String.valueOf(fileLen); strLen = strLen+n; Log.i(Tag, strLen); byte buffLen = strLen.getBytes(); byte buffL = new byte50; for(int i=0;i50;i+) if(i 0) ow.write(buf, 0, count); Log.i(Tag, reading file); Log.i(Tag, 开始发送!); outPut.write(ow.toByteArray(); outPut.flush(); catch(Excep

18、tion e) System.out.println(socket执行异常: + e.toString(); finally try / 结束对象 buf = null; reader.close(); 3.2 服务端(Server)服务端有一下几方面实现:1.使用 ServerSocket()创建固定端口,并由SocketListen方法监听这个端口并等 手机与 PC 的语音通信系统10待客户端的连接。当连接成功后客户端和服务端可以进行通讯,如果客户端断开服务端会再次重新等待连接。流程如图 3.8 所示 图 3.8 成功开启服务器2.当有数据套字节时使用 getOutputStream()方

19、法从 Socket 中读取套字节,赋给OutputStream。使用 ObjectOutputStream 从 OutputStream 中获取数据流,将数据流打印到控制台。.writeObject()方法将信息写如数据流,当触发发送监听时,将信息发送到已连接的主机。3.2.1 服务端界面1. PC 端初始界面如图 3.9 所示,当没有手机端连接时接收框显示为空白,发送区是不可用的。需要启动服务器。如果不启动服务器,程序完全不能运行,以下为服务端初始状态。 手机与 PC 的语音通信系统11图 3.11 服务端初始界面2. 服务端连接成功界面如图 3.12,当 Client 连接成功后显示已经连

20、接的手机IP,界面下端的 IP 显示服务端 IP 与默认端口号,并且服务端会显示服务器已启动,而此时服务端便可以与手机端开始通讯了。 手机与 PC 的语音通信系统12图 3.12 客户端连接成功界面 3. 手机成功连接服务端,服务端在线人员列表显示在线客户 IP。在对话框的下方输入手机端的 IP 跟默认端口号 1234,即可与手机端通信。 图 3.12 手机端与服务端连接成功界面 手机与 PC 的语音通信系统13 string strip = tbIP.Text; string strport = tbPort.Text; IPAddress IP; int Port; try if (str

21、ip != & strport != ) IP = IPAddress.Parse(strip); Port = Convert.ToInt32(strport); this.lIP.Text = IP.ToString(); this.lport.Text = strport; else IP = GetIP(); Port = 1234; this.lIP.Text = IP.ToString(); this.lport.Text = Port.ToString(); if (IP != null) serverFullAddr = new IPEndPoint(IP, Port); el

22、se MessageBox.Show(没有得到正确IP地址!); return; server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); server.Bind(serverFullAddr); lbserverState.Text = 服务器已经启动!; 如图 3.13 所示,服务端录音结束,在录音按钮的上方一串红色字体显示语音录制时间以及录音长度。选中所录制声音即可与在线手机客户端即可向客户端发送信息。 手机与 PC 的语音通信系统14图 3.13 服务端录音成功界面3. 服

23、务端接收语音成功如图 3.13,当 Client 发送信息时,Server 可以自动接收此语音显示到接受框并自动保存到 SD 卡,对话框中的第三条语音条目是手机端所发送的语音。显示有手机端 IP 以及录音时间。图 3.13 服务端接收语音成功界面 手机与 PC 的语音通信系统15 if (InvokeRequired) Invoke(new ShowGetvoice(UpdateLabel), flag); else if (flag) label3.Text = 接收保存成功!; private void SendFile(Socket acceptSock, string vpath) S

24、ocket sendSocket = (Socket)acceptSock; byte byteArray = new byte100; /sendSocket.Receive(byteArray);/接收数据 /将字节数组转成字符串 string strRec = System.Text.Encoding.Default.GetString(byteArray);4. 服务端发送信息如图 3.15,更新所有的语音,选择你想要发送的语音以及想要发送的手机端,点击“发送”按钮,若没能选择所发语音或对象,如图 3.14 所示。选择完成可以将对话框的语音发送到 Client 并在对话框回显,手机端接

25、收语音是由Server 端发送出去的语音。 手机与 PC 的语音通信系统16 图 3.14 选择发送对象界面 图 3.15 服务端发送信息界面 try int index = personLB.SelectedIndex; Socket socket = clientSocketListindex; if (wave.SavedFile = ) MessageBox.Show(请录音后再发送!); else SendFile(socket, wave.SavedFile); catch MessageBox.Show(请选择发送对象!); return; 5.如图 1.15 所示,服务端输入错

26、误的手机端 IP,服务端提示请求地址无效,此时需要核对或填写手机端 IP,用于与手机端连接,便于语音信息的发送。 手机与 PC 的语音通信系统17图 3.15 手机端 IP 填写错误界面 手机与 PC 的语音通信系统18第 4 章 有待实现功能4.1 预期功能 如图 4.1 所示,一开始从刘老师那里接到这个项目,预想的功能还是很理想的,能够实现手机之间的语音对讲,起到取代对讲机的功能,让项目更加实用化。并且能够对在线人员分组。图 4.1 预期功能原理图4.2 实现功能 在编写代码的过程中实现了不可预想的效果,如图 4.2 所示,等到想要修改的时候已经没有足够的时间,所以我们选择后期实现。相信经

27、过努力一定达到预期的功能。 手机与 PC 的语音通信系统19图 4.2 实际原理图 手机与 PC 的语音通信系统20第 5 章 结束语这次课程设计,经过一学期的开发最终很好的完成了。这个软件主要是用于手机与PC 端的语音对讲,目前实现了手机跟电脑互发语音消息。但是还不能发送文件,也不能同时多人在线聊天。我的下一步目标就是要实现多人聊天,并且可以进行分组,那样的话这个系统将有更高的可用价值。 通过这次课程设计,增加了我们对软件技术的了解,同时也增加了对计算机网络的认识,在具体的操作中对安卓语言的理论知识得到巩固加强,达到实训的目的,也发现自己的不足之处,比如说服务端的开发,大概有两个星期我都对服务端束手无策,因为在学习 JSP 的时候没能好好领悟老师所讲内容,所以一直处于迷茫状态,还好那天去创业中心请教班里学的比较好的同学,当时正好碰到. NET 班的同学,他听我说完选择帮助我完成这个系统,因为他学习的 C#所以我们的服务端选择用 C#来完成,期间我告诉他服务端所要实现的功能以及具体实现方法,经过两周半的探讨和代码的编写我们终于在 16周完

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论