ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:436.02KB ,
资源ID:7055437      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7055437.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机专业毕业设计论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机专业毕业设计论文.docx

1、计算机专业毕业设计论文2009年度本科生毕业论文(设计)局域网即时通信软件的设计与开发院 系: 工学院计算机科学与技术系 专 业: 计算机科学与技术 年 级: 2005级 * * 学 号: * 导师及职称: 李俊生(教授) 2009年6月2009 Annual Graduation Thesis (Project) of the College Undergraduate LAN instant messaging software design and developmentDepartment: College of Engineering Computer Science and Tec

2、hnology Dept.Major: Computer Science and TechnologyGrade: 2005Students Name:Li Zhong LinStudent No.:200503050417Advisor: Professor Li Jun Sheng June, 2009毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名:

3、 日期: 毕业论文(设计)授权使用说明本论文(设计)作者完全了解红河学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名:日期: 日期: 毕业论文(设计)答辩委员会(答辩小组)成员名单姓名职称单位备注主席(组长)摘要 随着计算机的普及和Internet的飞速发展,人们已经进入了信息化的时代,无论人们身在何方都可以利用网络彼此沟通、交换信息,网络聊天工

4、具在部分人的生活中已经必不可少,目前,在网络上新流行的通信软件有MSN, UC,阿里旺旺,诚信通,mycool甚至有的网络通信软件可以发送手机短信,可谓网络通信软件百家争鸣,各有千秋,即便这样,像QQ, MSN这样的老牌网络通信工具仍然是大部分网民的首选,特别是局域网内的通信软件IP信使,它自从1996年问世以来,一直受到各大企业单位和学校机房的青睐。因此通过研究IP信使的通信协议来实现局域网即时通信软件的人越来越多。 本软件就是通过分析了IP信使部分通信协议,利用delphi7.0编程工具编写的局域网即时通信软件。开发时使用了delphi7.0中的INDY组件里的UDP控件来实现用户上下线和

5、文字聊天,其中,用户上下线主要是利用UDP广播机制来实现的。使用INDY组件里的UDP控件和TCP控件来实现文件的传送,其中UDP控件用来处理文件收发应答,TCP控件用来建立安全可靠的文件流数据传输通道,保证文件发送的完整性。软件主要实现了用户注册、文字聊天、文件传送、用户身份验证、视频播放 、MP3播放等功能,同时,信息的传送具有不需要中心服务器的特点,实现了局域网内点对点的信息传输。本软件从需求分析、软件的设计、具体功能的实现都严格遵循了软件设计工程的思想。关键词:聊天;文件传送;用户身份验证;Delphi7.0;UDP;TCP;AbstractWith the widespread of

6、 computer and rapid development of Internet ,human has come into the information age ,no matter where people are ,they can communicate with each other and exchange information through the NetWork Communications software are quite necessary to a part of people in their life At present, a new epidemic

7、 in the Messenger Communications software with MSN, UC, AliWangwang, Chengxintong, mycool, and even some communication software can send SMS, network communication software is a hundred schools of thought, is different, even so, such as QQ, this communication tools of the old Brand is still the firs

8、t choice for most users, especially within the local area network communication software IP messenger, which since its designed in 1996, has been the major business units and schools in the Computer room of the popular., therefore more and more people achieve LAN instant messaging software through a

9、nalyzing IP messenger s communication protocol .By analyzing part of the IP messenger communication protocol, using the programming tools named delphi7.0 prepare LAN instant messaging software. Delphi7.0 used to develop the INDY components in the UDP to achieve user control and text chat on line, in

10、 which users on the upline and downline are to use UDP broadcasting method to achieve. INDY components used in the UDP and TCP control to achieve control of document flow, which controls UDP response to deal with documents, TCP controls used to create secure and reliable data transmission stream cha

11、nnel, and ensure the integrity of documents sent. The main achievement of the software the user registration, text chat, file transfer, user authentication, video player, MP3 player and other functions at the same time, the transmission of information does not require a central server with the chara

12、cteristics of a LAN peer-to-peer messaging. The software from the needs analysis, software design, the realization of specific functions are strictly followed the idea of software engineering design. KeyWords :chat ; file transfer ;ID authentication ;Delphi7.0 ;UDP ;TCP 第一章 引言1.1开发的目的 随着计算机的普及和Inter

13、net飞速发展,人们已经进入了信息化的时代,无论人们身在何方都可以利用网络彼此沟通、交换信息,网络聊天工具在部分人的生活中已经必不可少。比如QQ、YahooMessage等等这些都是大家比较喜爱的聊天工具。然而我们在使用这些聊天工具时都要登陆服务器,这对于在一个局域网内的用户们交换信息,传送文件不太方便,原因是:1).登陆服务器时麻烦的操作 ,2).假设局域网没有联网或者网络故障不能连接英特网,QQ、YahooMessage等通信工具就失去了意义。本次局域网即时通信软件的设计就是针对局域网内的用户即时通信而开发的。1.2 开发平台简介使用Delphi7.0作为开发工具。Delphi是Borla

14、nd公司研制的可视化开发工具,可在Windows3.x、Windows95、WindowsNT等环境下使用。它拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。Delphi它提供了100多个可供使用的构件,利用这些部件,可以快速地构造出应用系统。Delphi7.0在保持原有版本优点的基础上增加了很多更新更强的新特性,主要改进有:扩大了VCL(Visual Component Libraris)可视化组件库;对编辑器和编译器方面做了更多改进和优化;增加了多种网络应用开发的控件包如Indy和Web编程技术;完全支持.NET技术及XML技

15、术等;支持跨平台开发类库CLX。在本次设计中,主要使用控件包Indy中的网络控件来实现聊天和文件传送等功能。1.3 软件运行平台 硬件环境:处理器:PIII 1G以上;内存:128M 以上;硬盘:10G 以上可用磁盘空间;网络适配器:10/100M自适应网卡。软件环境:操作系统:Windows 2000以上版本网络要求:局域网内第二章 需求分析2.1 可行性分析局域网通信软件是网络通信软件的一个重要分支,它的主要功能就是实现局域网内的信息传递,信息传递包括了文字信息传送和文件传送两大基本功能。目前,局域网通信软件大概可以分为两类,第一类是居于中心服务器的,所谓基于中心服务器就是,两台或多台计算

16、机通信时,必须经过同一个服务器对双方的信息进行转发,这样的模式易于管理所有的客户端,但这就需要一台计算机来做服务器对所有的客户端信息进行转发,所有客户端在使用时必须登陆服务器,对于小型的局域网来说,中心服务器模式的通信软件在使用时是比较麻烦的,同时服务器的开销也是一笔不小的开支。第二类无需中心服务器,这类局域网通信软件是基于分散式服务器模式,它在信息传递时既是服务器又是客户端,局域网内的每台计算机网络负载均衡,用户在使用它时不需登陆服务器,极为方便。本软件基于分散式服务器模式,在设计时,选用Delphi7.0作为开发工具,Delphi7.0的网络控件提供了大量的网络控件,它们封闭了复杂的具体实

17、现细节,因此使用Delphi7.0来开发局域网通信软件是很方便的。早在1996年,局域网即使通信软件的代表IP信使就已经问世,时隔13年的今天,IP信使仍然深受各大企业、单位、高校计算机机房的喜爱,因此,无论从技术角度还是软件的实用性方面来讲,基于分散式服务器模式的局域网即时通信软件的设计是可行的。2.2功能需求分析本人通过对现有的局域网通信软件(IPMSG和LanTalk.Net等即时通信软件)的使用和分析后,总结出用户对于局域网通信软件的基本功能需求,因此局域网即时通信软件的功能要符合用户的要求就必须实现以下三个基本功能:2.2.1聊天(文字传送)聊天是局域网通信核心的部分,用户聊天时,都

18、不会喜欢复杂的操作,在设计时尽量使聊天功能的操作简单化,实用化。通常,局域网聊天软件都会有一个用户列表,用户在点击列表中的用户名后,就可以和对方聊天。当然,局域网内广播消息也是必不可少的一个功能,因此要实现聊天功能首先要解决的问题就是用户上线,下线,之后还要考虑到双方聊天时的通信安全。2.2.2文件传输文件传输使局域网通信软件变得更有价值,聊天功能只能实现文字的传送,但文件传输的功能就可以实现,各种文件的传送,使用户之间的信息交流更具现实意义。为此,在实现这一功能时要解决的问题就是传输瓶颈,实现大文件的传送,和高速传输。2.2.3 用户身份验证 在本次的设计中,信息的安全措施可以采用本地验证的

19、方式(向对方用户发送身份验证,对方收到验证消息后输入对方注册的用户名的密码进行验证,验证成功则向消息验证主动方发送验证成功的消息,验证失败则返回一条验证失败的消息给消息验证主动方)这样身份验证在局域网内能保证信息的安全。在实现上述主要功能后,还要考虑到增加一些附加功能,比如音乐播放功能和视频播放功能,这样,用户在进行通信的时候也可以听音乐,看电影,即使户没有使用通信功能,也可以把它当做播放器来使用。2.2 界面描述界面不仅仅是软件的外衣,最重要的是能让用户快速上手。复杂的操作界面会使用户难以接受,相反,简单而美观的操作界面会让用户爱不释手,这就是为什么很多用户喜欢windows操作系统的原因。

20、局域网即时通信软件的操作界面,界面简洁,直观,操作简便。第三章 软件的设计3.1 功能模块的设计 图3-1 软件功能模块3.1.1用户IP列表的设计如果说聊天模块是局域网即时通信的核心,那么用户列表就是局域网即时通信的核心的核心,因为当我们要发送消息和传送文件的时候必须要确定接收方是谁,必须知道接收方的IP地址。软件启动后就必需完成用户上下线的功能,上线用户信息包括用户名和所属的计算机的IP地址,这两个用户信息在界面中的“用户IP列表”中显示出来,这样,用户就可以知道有哪些用户在线,这些用户的计算机IP地址是多少,此外,文件的发送也需要“用户IP列表”。因此在实现聊天功能前就要先实现用户的上线

21、这个最基本的功能。实现用户上下线的流程如下: 图 3-2 上下线的流程A机软件启动后自动获取本机地址和用户注册名以500毫秒为间隔向局域网广播,B机软件处于启动状态自动接收到A机软件发送的A机地址和用户名后存入“用户IP列表”。A软件关闭时广播下线消息,B机软件接收到A机下线消息后在IP列表框内删除对应用户名和IP。3.1.2 聊天模块的设计 实现了用户上线功能后,就可以进行聊天模块的设计了。在delphi7.0中的INDY组件里有两组控件即(UDPclient UDPserver)和(TCPclient TCPserver), (UDPclient UDPserver)这组控件基于UDP协议

22、,由于考虑到TCP的对系统资源的要求较高,而UDP对系统资源的要求低,它的协议非常精简且发送包的速度快,所以我选用了(UDPclient UDPserver)这组控件来实现聊天模块的客户端和服务端,以下是聊天消息接收和发送的流程: 图3-3 聊天消息接收和发送流程A机软件启动UDP服务端自动设置端口号、UDP客户端自动设置端口号后处于信息接收、信息发送就绪状态,B机软件处于启动状态并且B机的UDP客户端将所发送的目的IP设置为A机IP,此时用户在消息输入框输入要发送的消息点击发送按钮后,B机UDP客户端将所发送的消息打包发送至A机,A机的UDP服务端自动接收来自B机的数据包放到缓存,然后判断软

23、件是否托盘,如果B机软件处于托盘状态,则判断是否进行托盘免打扰设置,如果否,那么B机软件就会弹出一个消息提示提醒用户有新消息,接下来再判断接收到的消息是否被加密,如果是,则解密收到的消息并显示,如果否直接显示消息。在聊天模块中,消息的广播功能是不可缺少的,消息广播的实现和一对一消息收发的原理基本一致,不同的是,当用户选择消息广播功能时,消息发送的目的IP是该局域网里的广播地址。3.1.3 文件传送模块的设计文件传输的实现比聊天功能的实现更具难度,在聊天功能时,使用的协议是UDP,而且delphi中的UDP控件在使用时也很简单,很方便,然而实现文件传输时,就要同时用到(UDPclient UDP

24、server)和(TCPclient TCPserver)这两组控件,除此之外,文件传送的协议还必须自己写,以下文件传输过程: 图3-4文件传输流程当A机向B机发送文件的同时,A机向B机发送一条询问消息(是否接收),此时B机弹出文件保存框,如果点击取消,B机向A机发送一条消息(拒绝接收),A机接收到消息“拒绝接收”后取消发送。如果B机文件保存框的“保存”按钮被点击,B机向A机发送一条消息(请求接收),A机接收到B机的“请求接收”消息后向B机发送消息(将要发送),B机接收到消息“将要发送”向A机发送消息(准备接受),A机收到“准备接受”后就开始向B机传送文件和文件的长度,在文件传送的过程中,如果

25、B机点击“取消”按钮,B机则向A机发送一条消息(取消发送),A机接收到“取消发送”消息后立即停止发送操作并清空缓存。如果没有B机的“取消按钮”没有被点击,A机继续传送文件,B机继续接收文件,文件传送完毕后A机向B机发送一条消息(文件传送结束)。3.1.4 用户身份验证模块的设计本设计的用户身份验证采用本地验证的方式,它的功能主要实现的是:用户A向用户B发送身份验证消息,这条消息包含有用户B的用户姓名,当B机收到A机发送的请求验证消息后,在B机用户注册信息中查找用户B的姓名,如果用户B的姓名存在,那么,B机把用户B的密码取出,放入一个变量中等待用户B输入密码并点击“确定”,如果用户B输入密码并点

26、击了确定,此时变量中的密码将与用户B输入的密码进行比较,如果两个密码一致,B机向A机发送一条消息(验证成功),如果两个密码不一致,B机向A机发送一条消息(验证失败,密码错误),如果变量为空,B机向A机发送一条消息(验证失败,用户没有注册)。以下是用户身份验证的流程: 图3-5 用户身份验证的流程 3.2软件操作界面的设计软件的界面美观与否虽然不能体现软件的质量和功能,但不美观的界面总会给用户不好的第一印象。同时,用户的审美观是不一致的,因此在设计界面时使用VclSkin制作了8种风格的界面可供用户选择,在操作方面,尽量使操作界面简洁,并且使用提示帮助用户进行正确操作,以下是XP风格的部分界面截

27、图:图3-6 软件操作主界面 图3-7用户注册界面 图3-8密码修改界面 图3-9用户名自动登录设置界面 图3-10视频播放界面图3-11程序最小化托盘界面第四章 模块的实现代码4.1 用户列表的实现代码此代码实现用户上下线功能,其流程图为 图 3-2procedure TFormmain.udpsr2UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var comm2: TcommBlock2;/ TcommBlock2为记录型 userlt, temp, iplt: string; i: Integer

28、;begin AData.ReadBuffer(Comm2, AData.Size); /从Comm2读取数据 if comm2.downlineflag = downline then begin /如果字符数组comm2中的downlineflag值为downline userlt := comm2.name; /把comm2.name存入变量userlt iplt := comm2.ip; /把comm2. ip存入变量iplt temp := userlt + + #9 + + iplt; for i := 0 to lstip.Items.Count - 1 do begin if

29、lstip.Items.Stringsi = temp then begin /temp里面是已经下线了的用户名和用户IP lstip.Items.Delete(i)4; /如果ip列表中有和temp相同的值就删除(收到对方下线广播,删除对应的用户名和用户IP) if userlt then begin mmoresv.Lines.Add(地址为 + + iplt + + 的用户 + + userlt + + 在 + edttime.Text + 时下线);/提示对方下线 lbluplinecount.Caption :=IntToStr(strToint(lbluplinecount.Cap

30、tion) - 1);/在线人数-1 end; end; end; end else begin userlt := comm2.name; iplt := comm2.ip; if lstip.Items.IndexOf(userlt + + #9 + + iplt) = -1 then /避免IP列表中的IP重复的判 begin lstip.Items.Add(userlt + + #9 + + iplt); end; end;end;4.2 聊天消息收发流程的实现代码此代码实现聊天消息收发流程,其流程图为图3-3procedure TFormmain.btnsendClick(Sende

31、r: TObject)1; /聊天消息发送的过程var Comm: TCommBlock;/记录型数组的定义begin if udpct1.Host = then begin ShowMessage(请选择聊天的对象); keybd_event(VK_BACK, 0, 0, 0);/退格 end else begin if chk2.Checked = False then begin Comm.SenderName := 【 + GStack.LocalAddress + 】 + 【 +edtname.Text+ 】 ; Comm.Msg := mmosend.Text; Comm.flag := ; if Comm.Msg = then begin ShowMessage(发送消息为空,请输入您要发送的消息); keybd_event(VK_BACK, 0, 0, 0); end else begin m

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1