局域网即时聊天程序的设计及实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
局域网即时聊天程序的设计与实现
作者
院系
专业
年级
学号
指导教师
答辩日期
成绩
摘要
局域网即时聊天通过进行文本聊天和语音聊天来实现彼此沟通、交流信息。
本次局域网即时聊天程序设计主要用了Visual C++编程环境,实现了在LAN中
在线用户的文本、语音交互。
在设计里涉及到了网络通信基本原理和Socket编程及语音处理API技术。
由于程序是在TCP/IP环境下运行,所以分服务器端和客户端。服务器端和客户
端是通过建立Socket链接来实现聊天功能。
本次设计主要着重于语音聊天部分,在本次论文里主要以语音聊天的流程和
各模块之间的关系及Socket处理为主说明。
关键词: Visual C++编程环境网络通信基本原理 Socket编程语言处理API
目录
摘要 (2)
英文摘要 (3)
第一章:绪论 (6)
一、背景介绍 (6)
二、相关知识 (6)
第二章:需求分析 (9)
一、可行性分析 (9)
二、需求分析 (9)
(一)系统功能要求 (9)
(二)系统性能要求 (10)
(三)系统运行要求 (10)
第三章:总体设计 (11)
一、层次图 (11)
二、各模块的功能及相互关系 (11)
第四章:详细设计 (13)
一、各模块具体流程 (13)
(一)通信模块 (14)
(二)声源采集模块 (14)
(三)语音数据传输模块 (14)
(四)音频再生模块 (15)
第五章:代码介绍 (17)
第六章:测试 (23)
一、模块测试 (23)
二、功能测试 (23)
三、测试结果 (24)
第七章结论 (25)
参考文献 (26)
第一章绪论
一、背景介绍
随着网路的出现,它在人们的生活中所扮演的角色越来越多,也越来越重要,人们可以通过这个空间进行网络聊天,实现彼此沟通,交换信息,甚至网络聊天工具在部分人的生活中由于传统的电话通讯手段同等重要的趋势。尤其现在的学校更是如此,单单在课堂里或校园里的交流是远远不够的,要是学校有聊天系统,那么学生之间或是师生之间的信息交流会更加频繁、更方便,有利于建立友好的关系网。
这次设计不仅能实现文本聊天,还能进行语音聊天,语音聊天是一种最先进的聊天方式,您只要拥有一只麦克风就完全能够加入进来。你可以无所顾虑无所拘束地进行聊天,免了文字的虚幻。
本次局域网即时聊天程序设计主要用了Visual C++编程环境,设计里还涉及到了网络通信基本原理和Socket编程及语音处理API技术。由于程序是在TCP/IP环境下运行,所以分服务器端和客户端。服务器端和客户端是通过建立Socket链接来实现聊天功能。
本次设计主要着重于语音聊天部分,在本次论文里主要以语音聊天的流程和各模块之间的关系及Socket处理为主说明。
二、相关知识
(一) Visual C++ 简介
Visual C++是一个功能强大的可视化应用程序开发工具,用于Windows环境下32位的应用程序的开发,是计算机界公认的最优秀的应用开发工具之一。在提供可视化的编程方式的同时,Visual C++也适用于编写直接对系统底层操作的程序,生成代码的质量也优于其它的开发工具。在Visual C++环境下,利用Microsoft的基本类库MFC(Microsoft Foundation Class Library),可以使用完全的面向对象的方法来进行Windows 95/98/NT应用程序的开发,使得Windows 程序员从大量的复杂劳动中解救出来,体会到真正的程序语言的强大功能和良好的灵活性。
Visual C++编程是一个面向对象的程序设计方法。同传统的结构化程序设计方法相比,它缩短软件的研制时间,提高软件的开发效率,使程序员可以更好地理解和管理庞大而复杂的程序。
面向对象的程序设计吸取了结构化程序设计的精华,它利用了人们根据对事物分类和抽象的倾向,引入了类和对象的概念,具有封装性(数据抽象)、继承和多态的特点。与结构化程序设计不同的是,面向对象程序设计是用类抽象代表现实的实体,用类之间的继承关系表示程序设计的抽象过程。函数只是对数据的操作,没有数据的概念,而类是数据和数据操作的集合,由于面向对象的程序设计方法非常近现实,所以越来越流行。
Visual C++中集成了大量的最新技术,如ActiveX、COM等技术,程序开发人员可以紧紧地把握住软件开发技术发展的方向,开发出功能强大的应用程序。
Visual C++还提供了丰富的技术资源,MSDN(Microsoft Develop Network)提供了强大的联机帮助支持,同时还可以通过访问Microsoft的网上站点来获得最新的技术文档。
(二) Socket及Window Socket API简介
套接字(Socket)是一种双向的通信接口,可以通过这个端口与任何一个具有Socket端口的计算机通信,套接字是网络通信的基础。Socket在Windows以句柄的形式被创建。使用Socket进行网络通信必须包含下面的几种信息:双方认可的协议,本地主机的IP地址,本地进程的协议端口,对方主机的IP地址,对方进程的协议端口。
Socket可分为: 1] 数据报套接字(Datagram Sockets)——对于在TCP/IP 上实现的WinSock,数据报套接字使用用户数据报协议(UDP)。数据报套接字提供了一种不可靠的、非连接的数据包通信方式。 2] 流式套接字(Stream Sockets)——流式套接字使用传输控制协议(TCP)。流式套接字可以将数据按顺序无重复地发送到目的地,它提供的是一种可靠的、面向连接的数据传输方式。不管是对单个的数据报,还是对数据包,流式套接字都提供了一种流式数据传输。
VC++对网络编程的支持有socket支持,Winlnet支持,MAPI和ISAPI支持等。其中Windows Sockets API是TCP/IP网络环境里,也是Internet上进行开发最为通用的API。最早美国加州大学Berkeley分校在UNIX下为TCP/IP协议开发了一个API,这个API就是著名的Berkeley Socket接口(套接字)。在桌面操作系统进入Windows时代后,仍然继承了Socket方法。从表一可以看出,主要的WinSock API函数有哪些。
(三) MFC Socket编程技术
MFC是对API的封装,MFC针对WinSock API封装了两个类:CAsyncSocket 和Csocket。因此,使用这两个类进行Socket网络程序的编写会比使用API方便一些。
MFC中Socket相关类的继承关系如下图: