计算机科学与技术毕业设计-1.7万字局域网聊天系统的设计与实现.docx
《计算机科学与技术毕业设计-1.7万字局域网聊天系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《计算机科学与技术毕业设计-1.7万字局域网聊天系统的设计与实现.docx(43页珍藏版)》请在课桌文档上搜索。
1、存档日期:存档编号:毕业设计报告题目:局域网聊天系统的设计与实现子课题:学号:姓%院系:整m指导教师:填写说明1 .毕业设计或毕业论文的选题应以专业课的内容为主,可以针对某些基础理论和学术问题进行探讨,也可以结合科技生产和社会生活的实际问题进行研究、开发与设计。2 .毕业设计或毕业论文一般为一人一题。如果选题确需多人合作完成一个课题,须由指导老师提出,经学院主管领导批准,但每个学生必须独立完成其中的一部分工作,并独立撰写各自的设计报告或毕业论文,在课题名称后面注明其相应的子课题。所有学生的选题经研究确定后,一般不允许中途更改课题。特殊情况需要更改课题者,须由指导教师调整或更改选题,且填写毕业设
2、计或毕业论文课题变动申请表,经主管领导批准后方可调整或更改。3 .课题需要多人合作的最多2人。多人合作的须在封面上填写参加者的姓名和联系方式。4 .成果形式一栏填写:软件或论文。5 .本开题报告最迟应在开始毕业设计的前六周确定,并上报给指导老师,必须经指导老师和学院批准方才有效,否则无效。6 .本开题报告使用A4纸张,上、下、左、右页边距均为2.5cm,请不要改变本开题报告页面设置。所有自己书写的内容请使用楷体。研究课题名称局域网聊天系统的设计与实现止月IJ年2009年2月16日2009年5月31日成果形式设计申请者姓名性别班级指导教师姓名性别职称课题组成员姓名性别班级在本项目中的分工负责系统
3、的整体设计与实现并撰写毕业论文研究项目主要内容使用VC+、MFC编程语言;采用UDP协议;采用C/S结构。实现局域网内的通信,暂不考虑文件传输等功能。(1)用户端之间的信息发送,本程序需要实现的最基本的功能。用户在界面上选择需要对话的IP,并将自己需要发送的信息填入相应的对话框中,点击发送按钮后,可以将信息正常的发送。在本程序中共需要3个端口,此功能预计使用3号端口。1.在线用户主机IP列表的维护。在用户发送信息之前,需要选择相应的目的地端IP,这也就需要客户端拥有在线用户主机的IP地址,这个在线主机列表的维护是需要客户端定时自动向服务器端发送信息,服务器端收集并维护在线用户列表,再发送回客户
4、端。需要在客户端和服务器端都使用定时器来完成此功能。此功能预计使用1、2号端口。拟采取的研窕方法和技术路线(包括研究工作的总体安排、步骤和各时间段的工作任务等)2009年2月15日前:查阅资料,为设计做准备2009年2月16日一2009年2月20日:对系统进行可行性研究分析,确定系统开发具有可行性;2009年2月21日一2009年3月10日:对系统进行需求分析,确定系统的总体目标;2009年3月11日一2009年3月25日:对系统进行总体设计,划分系统模块;2009年3月26日一2009年4月25日:对系统进行详细设计,基本实现整个系统功能;2009年4月26日一2009年5月8日:对系统进行
5、调试、优化和完善,最终实现系统全部功能;2009年5月9日一2009年5月31日:完成毕业设计报告,准备并进行毕业设计答辩。最终成果描述:一套局域网聊天系统与毕业答辩论文。本研究项目的科学依据和意义(包括科学学术意义和应用前景,国内外研究概况,发展趋势,立论依据,本项目的特色或创新之处):本设计将讨论一种基于MFCSocket的局域网通信系统的设计与实现方法。基于MFCSocket的局域网通信系统可以为局域网提供一种良好、安全、快速的通信机制,在局域网内部通信、教学、讨论等应用中都具有一定的实用价值,它同时很好地诠释了MFCSoCket通信的原理。基于SoCket的局域网通信软件应用范围广阔,
6、不但可以处理传统的通信需求,而且也能扩展以适应新型的网络应用,如网络教育,数据影音传输等,拥有广泛的应用前景。基于局域网的即时通信系统,实际上是互联网即时通信熊的一个小规模版本。广域网上的即时通信工具,如今一般采用UDP或者TCP协议体系来实现。开发技术已经比较成熟,比如较早的ICQ.MSNMessenger.YAHOO通等国外开发的产品,还有国产的有名的QQ、新浪UC、LAVA-LAVA等,这些工具统统都实现了广域网上的即时通信。尽管都是即时通信,实现了即时聊天,以及文件传输的主要功能,但是也各有各的特色,比如ICQ的巨大客户群,MSN的个性化表情,YAHOo通的易操作性等,而QQ也具有一个
7、相当方便的屏幕截图功能。另外,所有上述软件都实现了网络即时的视频,语音聊天功能。这些软件,在使用方面各有特色,在实现方面也各有所长,但由于这些产品正在商业运营阶段,其实现方式属于商业机密,具体细节不可能得知,但是它在大的方面无非就是各种利用各种平台上的网络通信接口,建构基于下层TCP/IP,或者UDP/1P协议的软件产品。在局域网内,这些功能的实现跟广域网相比更加简单,因为局域网的网络结构本身比广域网要简单,但是可以借此理解网络协议,以及网络通信工具的实现原理,所以仍然极具研究价值。指导教师意见(对本项目的研究意义、研究方案、取得预期成果的可能性等签署具体意见):指导教师(签字):年月日学院指
8、导委员会意见:负责人(盖章):年月日毕业设计报告原创性声明局域网聊天系统的设计与实现摘要:本文介绍了采用MicrosoftVisualC+6.0编程开发视频聊天系统的一套比较常用的解决方案。文字聊天采用TCP模式;语音视频聊天采用UDP模式,在客户端之间点对点的进行。在该方案中,通过函数库VFW来实现视频捕获、影像压缩以及影像播放。微软公司提供的专门用于视频捕获开发的工具包VFW(VedioForWindows),为在Windows操作系统中实现视频捕获提供了标准的接口,从而大大降低了程序的开发难度。在视频传输方面,则通过组建视频帧,将位图形式的视频帧压缩成帧格式的MPeg4流,传输到客户端后
9、,解压并显示影像。同时,在本方案中,采用了线程来实现语音录制和语音回放,最终实现了通过服务器中转的文字聊天、点对点的语音视频聊天。关键词:文字聊天;VFW;视频传输;语音回放DesignandImplementationofLAN-BasedChatRoomSystemAbstract:Asanewtoolaboutcommunication,videochattingsystemhasbrokenthroughgeographicalrestrictions,hasprovidesmoreconvenient,flexibleandcompletetransmissionandservice
10、.Furthermore,ithasaverybrightfuture.ThecommonsolutionabouthowtodevelopavideochattingsystemisintroducedbytheMicrosoftVisualC+6.0programming.TCPmodelisusedinthetextchattingandUDPforthepoint-to-pointvideochatsbetweentheClients.Inthisplan,VideoCapture,VideoCompressionManagerandDrawDibarerealizedbythefun
11、ctionsofVFW(VedioForWindows)Library.ThespecialkitVFW(VideoforWindows)invideocaptureofferedbyMicrosoftCorporation,hasprovidedastandardinterfaceforvideocaptureinWindowsOperatingSystemandthusgreatlyreducedthehardshipofprogramming.Invideotransmissionaspect,itrequiresavideoframewhichiscompressedthevideof
12、rameofbitmapintoMpeg4steamofframeform.ThenitwillbedecompressedintoimagessinceithasbeenarrivedtheClient.Meanwhile,thethreadisusedtoachieveaudiorecordingandreplaying.Finally,ithasrealizedthetextchattingthroughaservertotransit,thepoint-to-pointaudioandvideochats.Keywords:textchatting;VFW;videotransmiss
13、ion;audioplaying第1章绪论31.1 课题背景及意义31.2 课题现状3第2章开发技术的原理性说明42.1 WIN32编程(即SDK程序设计原理)42.2 MFC(MicrosoftFoundationClass)52.2.1 简介52.2.2 MFC与C语言APl的关系52.2.3 MFC类库52.3 TCP/IP协议及WINDOWSSOCKETS网络编程接口62.3.1 TCPZIP协议简介62.3.2 WindowsSocket网络编程简介62.4 多线程技术62.4.1 进程及线程概述62.4.2 MFC对多线程编程的支持72.5 VFW简介72.6 VC+6.0简介10
14、第3章需求分析及可行性研究113.1 系统功能模块图113.2 需求分析113.2.1 功能需求分析113.2.2 性能需求分析133.2.3 运行需求分析133.3 可行性研究133.3.1 成本可行性133.3.2 技术可行性143.4 软硬件环境143.5 界面的设计143.5.1 登陆界面143.5.2 服务端界面设计153.5.3 客户端界面设计15第4章详细设计及编码实现164.1 文字聊天164.1.1 TCP套接字的运用164.1.2 文字聊天实现174.2 语音视频聊天194.2.1 UDP套接字的运用194.2.2 视频的捕捉204.2.4 视频捕获驱动244.2.5 语音
15、录制244.2.6 语音回放254.2.7 视音频的传输26第5章测试285.1 测试285.2 测试结论28第6章总结与展望296.1 总结296.2 展望29毕业设计体会30致谢31参考文献32英文翻译资料33第1章绪论1.1 课题背景及意义随着Internet的不断发展普及,网络通讯成为人们生活中的一部分。网络聊天已和手机等一样,成为人们运用最为广泛的通信工具之一。本设计主要目的是为了满足人们通讯交流的便捷,实现灵活、全面的音、视频信息的传递和服务。模拟QQ软件,开发一个多功能的聊天系统软件,本毕业设计主要实现语音视频聊天、文字聊天等功能。本设计开发采用C/S结构,在VC开发环境下,使用
16、C+编程语言进行本软件的开发。在本文中,将讨论一种基于MFCSocket的局域网通信系统的设计与实现方法。基于MFCSoCket的局域网通信软件可以为局域网提供一种良好、安全、快速的通信机制,在局域网内部通信、教学、讨论等应用中都具有一定的实用价值,它同时很好地诠释了MFCSocket通信的原理。1.2 课题现状基于局域网的即时通信工具,实际上是互联网即时通信工具的一个小规模版本,广域网上的即时通信工具,如今一般采用UDP或者TCP协议体系来实现,开发技术已经比较成熟,比如较早的IcqMSN、YahOo!通等国外开发的产品,还有国产的有名的QQ、百度hi!,中国移动通信fetion等,这些工具
17、统统都实现了广域网上的即时通信。所有上述软件都实现了网络即时的文字,视频语音聊天功能。这些软件,在使用方面各有特色,在实现方面也各有所长,但由于这些产品正在商业运营阶段,其实现方式属于商业机密,具体细节不可能得知,但是它在大的方面无非就是各种利用各种平台上的网络通信接口,建构基于下层TCP/IP,或者UDP/IP协议的软件产品。在局域网内,这些功能的实现跟广域网相比更加简单,因为局域网的网络结构本身比广域网要简单,但是可以借此理解网络协议,以及网络通信工具的实现原理,所以仍然极具研究价值。第2章开发技术的原理性说明2.1 Win32编程(即SDK程序设计原理)所谓的Win32开发,就是在C+语
18、言的层面上,直接使用Win32API(ApplicationProgrammingInterface:系统开放出来,给程序员使用的接口。)开发WindoWS应用程序或者系统程序。虽然现在直接用Win32APl开发应用程序的人已经不多了,但是深入理解Windows系统程序设计原理,仍然是成为Windows开发高手的良好途径。所谓的Win32,其实是一个API规范,与UNIX系统编程接口标准POSIX是相对应的。下面是进行直接的Win32SDK方式编程的基本思路或者说是一个框架。一个WindoWS程序分为程序代码和UI(USerInterface用户界面)资源两大部分,两部分最后以RC编译程序编译
19、为一个完整的EXE文件。所谓Ul资源是指功能菜单、对话框外貌、程序图标、光标形状等等。这些IJl资源的实际内容(二进制代码)系借助各种工具产生,并以各种扩展名存在,如.ico.bmp.cur等等。程序员必须在一个所谓的资源描述档(.rc)中描述它们。RC编译器(RC.EXE)读取RC文件的描述后将所有Ul资源文件集中制作出一个.Res资源文件,再与程序代码结合在一起,这才是一个完整的WindOWS可执行文件。1 .WinMain函数main()函数是C+程序的进入点,而WinMain函数则是Windows程序的进入点。2 .Msg结构体定义了一个MSg结构体,是WindoWS内设的一种数据格式
20、,在WindoWS程序中,消息是由MSG结构体来表示的。3 .注册窗口RegiSterClaSS()完成注册窗口类的功能,设定窗口的属性:边框、颜色、标题、位置等等。4 .创建窗口CreateWindoW函数可以用于创建父窗口、弹出窗口以及子窗口,在创建窗口时它可以确定窗口类、窗口标题、窗口风格、大小以及初始化位置。5 .显示窗口创建窗口后需要使用ShowWindow函数用于显示窗口。6、刷新窗口调用UpdateWindow函数来刷新窗口。7 .消息循环初始化工作完成后,WinMain进入所谓的消息循环,使用While循环,不断的GetMessage,再使用TranSlateMeSSage将消
21、息转化,用DiSPatChMeSSage将消息传递给窗口函数去处理。8 .获取消息GetMeSSage功能函数从消息队列中获取消息,如果消息队列中没有消息,此功能函数则会一直等得消息。9 .转换消息将特定的消息转换为不同的消息,例如消息队列中同时有WM.KEYDOWN和WM-KEYUP消息时,意味着用户同时按下了键盘上的某几个键,此时TranslateMessage将其转换为一个WM_CHAR消息。10 .将消息发送到回调函数DispatchMessage通过USER模块的协助将消息送到该窗口的窗口函数去了,但是DispatChMessage并没有指定函数名,却可以将消息传送过去,这是因为消息
22、发生的时候,OS己经根据当时状态,为它标明了所属窗口,而窗口所属的窗口类亦是明确的。11 .WinMain函数返回值returnmsg.wParam;返回结构体变量msg中的wParam的值。12 .WindOWPrOC窗口函数窗口中的生命枢纽:窗口函数WindOWPrOc。WindoWProC是一个CaIIbaCk函数,常利用SWitCh/case方式判断消息的种类,以决定处理方式。2.2 MFC(MicrosoftFoundationClass)2.2.1 简介MFC是在1992年随微软的MicrosoftC/C+7.0编译器发布的,是建立在WindowsAPI之上的C+类库(C+Clas
23、sLibrary),意图是使WindoWS程序设计过程更有效率,更符合面向对象的精神。现在MFC已经成为了Windows环境上标准的C+APIoMFC使得开发WindoWS应用程序变得简单容易,将很多应用程序开发中常用的功能自动化,并且提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架。同时,在ViSUaIC+内部也内建了很多对MFC的非常实用的东西,例如类向导这样的支持,减少软件开发的时间,使用类向导可以生成从hell。WorId这样的简单程序到活动文档服务器这样的复杂程序。MFC的消息映射机制也避免了使用性能较低的庞大虚函数表。MFC在整个WindOWS家族中都是兼容的。2.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 技术 毕业设计 1.7 局域网 聊天 系统 设计 实现

链接地址:https://www.desk33.com/p-985981.html