首页 >  毕业论文  > 正文

基于P2P技术的语音聊天工具的设计与实现

随着科技的进步,网络技术的发展。网络聊天工具已经成为和人们生活息息相关的一种工具,与传统的通讯工具相比,网络聊天工具有很多优势如高效、经济。但传统的网络架构会给服务器带来数据量过大的压力,本课题就网络通信数据量较大,采用P2P网络技术和C++套接字技术,实现Windows平台下广域网的语音聊天软件,并利用基于UDP打洞的P2P网络协议去实现文字聊天、文件传输、语音聊天的,与传统的C/S、B/S架构相比P2P技术可以缓解服务器压力,用户之间对话也相对自由。课题涉及到多种类型数据,针对不同的数据类型进行了一系列的优化使得程序更高效、可靠。并且对套接字进行了异步的管理和多个线程并发运行,取得了较好的运行效果。
[关键词] P2P;打洞;多线程;I/O管理;文件传输;语音聊天
1.2  题目预期目标
本课题是一个基于P2P的语音聊天软件的研究与实现,软件有两个部分,一个服务器端的客户端,一个就是主程序,能够实现通过服务器提供的一些信息让主程序之间进行直接通信的软件。
本题目研究的主要内容是:利用C++和Win32api去实现应用软件,在此平台下利用P2P技术、多线程编程、Windows  Sockets 模型、音频接口、UDP协议去实现一个语音聊天软件,具体要实现的目标如下:
(1)实现用户间的文字聊天
(2)用户之间可以传输文件
(3)实现用户之间的语音聊天
 
1.3  论文的主要内容
本文有六大部分:第一部分介绍了基于P2P的语音聊天软件的开发背景和题目的意义以及本文的主要工作。第二部分介绍了基于P2P的语音聊天软件运行环境及开发所用关键技术。第三部分是P2P的语音聊天软件的需求分析,明确了软件的功能。第四部分是P2P语音聊天软件的是总体设计这部分确定了相关的功能模块。第五部分是P2P语音聊天软件的详细设计包括服务器和主程序端。第六部分是P2P语音聊天软件的测试和结果分析,并做了相关的总结。
1.3.1  软件运行环境及开发所用关键技术
毕业设计是对大学四年学习的一个综合的应用,相对于每学期的课程设计而言毕业设计的要求要高很多,因为毕业设计所涉及的课程比较多,所以本章把课题所用的关键技术一一列举并做了相关的介绍。
 
   <div class="article-tip">以上是本题目部分介绍,若需要完整版或不符合您的要求,请联系客服QQ:<strong>840612233</strong></div>
 
目    录
1 概论 1
1.1 选题背景 1
1.1.1 题目相关背景 1
1.1.2 题目开发的意义 1
1.2 题目预期目标 2
1.3 论文的主要内容 2
1.3.1 软件运行环境及开发所用关键技术 2
1.3.2 软件运行环境 2
1.3.3 硬件环境 3
1.3.4 软件开发环境 3
2 软件相关的核心技术简介 3
2.1.1 语言工具C++ 3
2.1.2 多线程编程 4
2.1.3 UDP通信协议 5
2.1.4 P2P通信模式 6
2.1.5 Windows Sockets模型 7
2.1.6 音频数据的处理 8
3 需求分析 9
3.1 软件功能性需求分析 9
3.1.1 文字聊天功能 9
3.1.2 文件传输功能 10
3.1.3 语音聊天功能 10
3.2 软件性能需求分析 10
3.3 软件可行性分析 11
4 软件的总体设计 11
4.1 软件的架构设计 11
4.1.1 运行架构 12
4.1.2 工作流程 13
4.1.3 网络架构 14
4.2 功能模块设计 15
4.2.1 显示在线用户 15
4.2.2 文字聊天 15
4.2.3 文件传送 15
4.2.4 语音聊天 15
5 软件的详细设计与实现 16
5.1 软件通信过程与实现的方式 16
5.2 主程序与服务器端 19
5.3 主要数据结构的设计 21
5.4 服务器端的设计与实现服务器端的设计与实现 21
5.4.1 服务器端工作原理 21
5.4.2 服务器端进行初始化 21
5.4.3 服务器对在线用户的维护 22
5.4.4 处理用户的请求功能函数的实现 23
5.5 主程序的设计与实现 23
5.5.1 主程序的工作原理 24
5.5.2 主程序的初始化 25
5.5.3 文字聊天功能的实现 25
5.5.4 文件传输功能的实现 26
5.5.5 语音聊天功能的实现 27
6 软件测试及结果分析 28
6.1 软件测试 28
6.2 软件的运行演示效果 29
6.3 软件测试的启发 31
结束语 33
参考文献 34
致谢 35
 

以上是本题目部分介绍,若需要完整版或不符合您的要求,请联系客服QQ:242219979

上一篇:基于Android的学生信息管理系统的设计与实现

下一篇:基于嵌入式设备Web Server的设计与实现