基于安卓手机的语音通讯软件设计(2)
时间:2018-04-25 20:53 来源:毕业论文 作者:毕业论文 点击:次
现如今手机的通话费用仍然较高,特别是在漫游后者拨打长途电话时。相对于以时间来计算通话费用而产生的高额话费来看,通过网络传输语音而产生的流量费用要低得多,并且并不存在任何地区的差异,也不存在所谓的长途额外费用。因此,基于互联网设计的安卓语音通信软件的产生已经成为了必然的趋势。 1.2 课题目标 本课题通过设计实现一个局域网内的语音通信软件,来模拟互联网状态下语音通信软件的运行过程。主要实现语音的采集、处理、发送、接受和播放等功能来完成一个语音通信的过程,并了解相关功能部分使用的关键技术、熟悉socket通信的基本方法和TCP协议下数据的接受和发送等操作。 1.3 研究现状和发展趋势 2 开发环境和相关技术 2.1 系统开发环境介绍 2.1.1 Android开发环境 Android的上层应用程序是用Java语言开发,所以开发Android的应用主要使用Ecilpse软件。除了Eclipse之外,为了满足Java语言的运行环境,还应该有由SUN公司提供的Java SDK(其包括JRE:Java Runtime Environment)。除了以上两者之外,对于Android应用的开发还需要有Google提供的Android SDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更。ADT是Eclipse下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发: (1) Java SDK (2) Eclipse (3) Android SDK (4) ADT 2.1.2 Eclipse Eclipse是由IBM公司开发出来,后来又免费捐献出来的开源工具,是一套主要用于Java开发的IDE。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。尽管 Eclipse 是使用Java 语言开发的,但它的用途并不限于 Java 语言,Eclipse 框架还可作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。Eclipse除了开发Java程序,在安装必要的插件后可以做为其他开发工具,如按装了C++插件后就可以开发C++应用程序。Eclipse具有强大的扩展功能,加上其开源的特性,导致许多爱好者和公司为其开发了非常优秀的插件,Myeclipse就是其中之一。Myeclipse是面向J2EE开发者的Eclipse插件,功能强大、好用。 2.1.3 Android SDK SDK(Software Development Kit)是一些开发工具的集合。这些集合主要是备用在特定的软件包、硬件平台、操作系统以及软件包上。SDK作为整体开发中必不可少的工具包,它向开发者提供了所有在开发者需要的工具(除了库函数)。 2.2 系统开发技术介绍 2.2.1 TCP协议 TCP(Transmission Control Protocol)即传输控制协议,是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议。Java 为TCP 协议提供了两个类: Socket 类和ServerSocket 类.一个Socket 实例表示了TCP连接的一端。ServerSocket 实例监听TCP连接请求,并为每个请求创建新的Socket 实例。也就是说服务器端要同时处理ServerSocket 实例和Socket实例, 客户端只需要使用 Socket 实例. TCP连接需要通过3次握手来实现,其中client通过connect()来建立TCP连接,connect()会发送SYN报文;server通过bind()、listen()、accept()来接受一个TCP连接,listen()会处理三次握手。下图展示了TCP连接中3次握手的过程: 图2-1 TCP连接中的3次握手 TCP连接过程中,通过客户端的close()来中止连接。终止一个连接要经过 4 次握手。这是因为 TCP 的半关闭造成的。TCP 连接的全双工性质导致了关闭必须从两个方向上进行。每当一方完成数据的发送后,需要额外的发送一个FIN来表情中止这个方向上的连接。而当一端收到一个 FIN的时候 ,它需要再告诉应用层去终止收到FIN方向上的数据传送。。发送 FIN的情形 一般发生在应用层进行关闭的时候 (责任编辑:qin) |