局域网即时聊天程序的设计与实现
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
摘 要
局域网即时聊天通过进行文本聊天和语音聊天来实现彼此沟通、交流信息。本次局域网即时聊天程 [来源:http://think58.com]
序设计主要用了Visual C++编程环境,实现了在LAN中在线用户的文本、语音交互。
在设计里涉及到了网络通信基本原理和Socket编程及语音处理API技术。由于程序是在TCP/IP环境下
内容来自think58
[资料来源:http://think58.com]
运行,所以分服务器端和客户端。服务器端和客户端是通过建立Socket链接来实现聊天功能。
本次设计主要着重于语音聊天部分,在本次论文里主要以语音聊天的流程和各模块之间的关系及 [资料来源:THINK58.com]
Socket处理为主说明。 [资料来源:THINK58.com]
关键词: Visual C++编程环境 网络通信基本原理 Socket编程 语言处理API
目 录 内容来自think58
摘要
copyright think58
......................................................................................2
英文摘要 copyright think58 [资料来源:http://www.THINK58.com]
................................................................................3
第一章:绪论 本文来自think58 [资料来源:http://THINK58.com]
..........................................................................6
一、背景介绍 .....................................................................6
二、相关知识.........................................................................6
第二章:需求分析 内容来自think58
[来源:http://www.think58.com]
.....................................................................9
一、 可行性分析....................................................................9
二、 需求分析 ............................................................……. 9
(一) 系统功能要求 ......................................................9
(二) 系统性能要求 ......................................................10
(三) 系统运行要求 ......................................................10
第三章:总体设计
think58.com
[版权所有:http://think58.com]
[资料来源:http://THINK58.com].....................................................................11
一、 层次图 ..............................................................…...11
二、 各模块的功能及相互关系 ............................…………... 11
第四章:详细设计
[来源:http://www.think58.com]
.................................................................…13
一、 各模块具体流程 ......................................................….13
(一) 通信模块 ................................................................14
(二) 声源采集模块...................................……………….14
(三) 语音数据传输模块................................………………14
(四) 音频再生模块...........................................………….. 15
第五章:代码介绍 think58好,好think58
.....................................................................17
第六章:测试 ....................................................................... think58 [版权所有:http://think58.com]
…23
一、模块测试 ......................................................…………23
二、功能测试 ............................................................……..23
三、测试结果......................................................…………...24
第七章 结 think58.com
论................................................................................25
参考文献 [来源:http://think58.com]
............................................................................….26
第二章 需求分析
在这里先说明设计的需求分析之前分析一下设计的可行性。
可行性分析的目的是为了用最小代价在最短时间内确定问题是否能够解决。可行性分析的实质就是 think58好,好think58
要进行一次压缩简化系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和 [资料来源:www.THINK58.com]
设计的过程。
一、可行性分析
1) 技术可行性:本系统以Visual C++为主要编程环境,再结合网络通信基 本原理和Socket编
[资料来源:http://www.THINK58.com]
程及语音处理API技术,技术成熟,可行。
2) 经济可行性:这个系统开发开发成较低,经济效益会远大于开发成本,可行。
3) 操作可行性:系统硬件为PC机,软件为Windows NT/2000,而且编程环境Visual C++为专业
本文来自think58 [来源:http://think58.com]
[资料来源:www.THINK58.com]
程序员使用工具,比较易于使用,可行。
二、 需求分析
需求分析的基本任务是准确的回答“系统必须做什么?”这个问题。这一阶段是对系统认识最为全 [资料来源:http://think58.com]
面、准确、清晰、得体的一个比较关键的时期。而且需求分析的结果是系统开发的基础,关系到工
think58
[来源:http://think58.com]
[资料来源:http://THINK58.com]
程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证,为下 本文来自think58 [资料来源:THINK58.com]
一步的总体设计打好基础。
(一) 系统的功能要求
在线朋友指的是在所有使用本系统在局域网上进行信息传递的用户。局域网中在线用户之间的聊天 think58
包括文本聊天及语音聊天。
文本聊天就是在线双方互相传递文本信息的功能,而语音聊天就是指在线双方互相传递语音信息的 内容来自think58
[来源:http://www.think58.com]
功能。
下面是文本聊天部分所要完成的功能。 [版权所有:http://think58.com]
1)在这个系统中只要在线就可以和所有使用此系统的已经在线的朋友进行聊天,
并且为不同的朋友提供不同的聊天窗口,也就是说和10个在线人员聊天的话就得有10个聊天窗口打
think58好,好think58 [来源:http://think58.com]
[资料来源:THINK58.com]开。
2)与特定用户之间的聊天窗口中必须提供聊天信息的输入和聊天信息的显示功能。
3)要发送给对方的文字或字符的输入工作要在聊天窗口的输入框中完成。
4)当输入完聊天信息以后进行发送,当发送没有结束时,不能进行新的聊天内容的输入。一般聊天 [资料来源:www.THINK58.com]
内容一次不能超过500个字符。
5) 聊天信息要显示在聊天窗口中,显示的内容包括:发送信息、接收信息。
发送信息是指自己发送给对方的信息,即发送内容;接收信息是指来自对方的信息,这里显示接收
copyright think58 [资料来源:http://www.THINK58.com]
[资料来源:http://THINK58.com]到的内容。
think58 [资料来源:http://www.THINK58.com]
[版权所有:http://think58.com]
以下是语音聊天部分要完成的功能。 copyright think58
[资料来源:THINK58.com]
6)在聊天窗口以建立的基础上,建立与服务器端的连接。
7)与对方连接以后开始语音聊天。
8)想结束语音聊天时,按结束键就能与对方断开连接,即结束语音聊天。
(二) 系统性能要求
a.. 时间性能要求:在实际应用中由于客户端的大量频繁的访问,服务器响应时间应该尽可能缩短 copyright think58 [来源:http://think58.com]
,对于有特殊需求的应用,还要求达到实时响应。
b. 存储性能要求:根据应用中的实际情况配置适当容量的存储设备,特别是音频存储设备容量方面 think58.com
[资料来源:www.THINK58.com]
要适当得配置。
c. 稳定性安全性要求:要求软件尽可能的稳定,对于一般的应用系统,对安全
性要求不高,对于特殊的应用,还需要在安全性方面加以保证,所以要相应提高服务器端的配置。
(三) 系统运行要求
服务器端: 用于接收/转发数据。在本系统中服务器端本身也可以是客户端。
客户端 : 多个PC机,通信用,作为文字及音频数据发生端。
[资料来源:http://think58.com]
第三章 总体设计 copyright think58
经过了需求分析阶段的工作,系统必须“做什么”的问题已经清楚了,现在是决定“怎么做”的时 think58 [资料来源:http://THINK58.com]
候了。总体设计的基本目的就是回答“系统应该如何实现?”这个问题。在这里要确定系统中每个
本文来自think58
程序是由哪些模块组成的,以及这些模块相互间的关系。
在需求分析里也已经说明了对于局域网即时聊天程序的设计过程主要由在线朋友文本聊天功能和语
[来源:http://think58.com]
音聊天功能。由于语言聊天是发送声音的一端将硬件接口采集到的声音数据通过Socket发送到另外
本文来自think58
[来源:http://www.think58.com]
[版权所有:http://think58.com]一端,另外一端根据得到的声音数据调用硬件接口播放声音,所以其核心是声音数据的采集、播放 think58好,好think58 [资料来源:http://THINK58.com]
和声音数据的网络传输。
一、 层次图
根据本次设计需要,把整个即时聊天系统分成文本聊天部分和语音聊天部分。
文本聊天部分主要由文字输入及发送、聊天记录保存、接收文字信息等三个模块分成。语音聊天部 think58好,好think58
分则由四个模块分成。即通信模块、声源采集模块、声音数据传输、音频再生模块。 copyright think58
[资料来源:www.THINK58.com]
[图2] 本次设计的层次图
二、 各模块功能及相互关系
由于设计本身着重于语音聊天部分,所以在这里就针对这部分进行说明。
1. 通信模块:主要功能是接收并连接服务器端和客户端接口,负责作为服务器 时的
本文来自think58
[资料来源:http://www.THINK58.com]
网络端口监听,并且为客户端接口的发送数据和接收数据进行消息处理。为文本发送与接收及语音 think58
[资料来源:http://THINK58.com]
交互奠定了基础。
2. 声源采集模块:主要功能为负责采集客户端发出的声源,把采集到的声源放到缓冲区里, 本文来自think58
为语音传送建立了基础。
3. 声音数据传输模块:主要功能是把采集到的声源进行保存及传送,一旦传送到就把内存置 [资料来源:THINK58.com]
空,返还到录音设备进行录音,它为音频再生模块提供语音数据。
4. 音频再生模块;主要功能是接收声音数据传输模块传送过来的语音数据进行放音并且释放 本文来自think58
内存以便于保存采集到的声源。这模块为接收方的客户端提供了音频数据,使语音交互顺利进行。
5. 至于文字输入模块及输出模块是为通行模块提供了文本数据,并通过通信模块进行两个客
think58.com
户端之间的文本交互。
在这里特别要注意的是录音和播放的程序处理中要特别注意分配内存的大小和数量,一定要保证在
录音过程中录音设备至少有一块内存可供录音,使得循环能够顺利进行。 [资料来源:THINK58.com]