原创基于socket的即时通讯软毕业论文设计40论文41.docx

上传人:b****6 文档编号:7072828 上传时间:2023-01-17 格式:DOCX 页数:51 大小:176.59KB
下载 相关 举报
原创基于socket的即时通讯软毕业论文设计40论文41.docx_第1页
第1页 / 共51页
原创基于socket的即时通讯软毕业论文设计40论文41.docx_第2页
第2页 / 共51页
原创基于socket的即时通讯软毕业论文设计40论文41.docx_第3页
第3页 / 共51页
原创基于socket的即时通讯软毕业论文设计40论文41.docx_第4页
第4页 / 共51页
原创基于socket的即时通讯软毕业论文设计40论文41.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

原创基于socket的即时通讯软毕业论文设计40论文41.docx

《原创基于socket的即时通讯软毕业论文设计40论文41.docx》由会员分享,可在线阅读,更多相关《原创基于socket的即时通讯软毕业论文设计40论文41.docx(51页珍藏版)》请在冰豆网上搜索。

原创基于socket的即时通讯软毕业论文设计40论文41.docx

原创基于socket的即时通讯软毕业论文设计40论文41

长 沙 学 院

CHANGSHAUNIVERSITY

毕业设计(论文)资料

 

设计(论文)题目:

基于socket的即时通讯软件

  

系    部:

电子与通信工程

专业:

通信工程

学生姓名:

班级:

指导教师姓名:

最终评定成绩

第一部分毕业论文

一、毕业论文

第二部分外文资料翻译

一、外文资料原文

二、外文资料翻译

第三部分过程管理资料

一、毕业设计(论文)课题任务书

二、本科毕业设计(论文)开题报告

三、本科毕业设计(论文)中期报告

四、毕业设计(论文)指导教师评阅表

五、毕业设计(论文)评阅教师评阅表

六、毕业设计(论文)答辩评审表

 

2009届

本科生毕业设计(论文)资料

 

第一部分毕业论文

 

(2009届)

本科生毕业论文

基于socket的即时通讯软件

系    部:

电子与通信工程系

专业:

通信工程

学生姓名:

闫成超

班级:

05通信2

学号2005043201

指导教师姓名:

张明

职称高级工程师

最终评定成绩

 

2009年6月

长沙学院本科生毕业论文

 

基于socket的即时通讯软件

 

系(部):

电子与通信工程

专业:

通信工程

学号:

2005043201

学生姓名:

闫成超

指导教师:

张明高级工程师

2009年6月

摘要

近些年来,随着计算机技术的飞快发展,尤其是计算机网络方面的发展,人们的生活得到了彻彻底底的改变,人们能以非常低廉的价格,甚至不用花钱,就可以用上更方便、更实用的网络通信软件。

现在,网络上的在线服务系统多种多样,它们已经深深的影响并改变了人们的联系和交流方式,使得人们可以在千里之遥进行即时性的通讯。

过去的种种陈旧的通讯方式,已经不能满足现代生活的需要。

即时通讯软件作为一种方便人与人之间联系的实用工具应运而生,为我们的学习和工作,带来了极大的方便,很大程度的提高了学习和工作效率。

由于即时通讯软件的外观友好、使用非常方便,而且使用者之间的通讯是即时互动的特点,受到大多数人的喜欢,这一类通讯软件的应用市场特别广阔。

现如今,很多的企业、机关、学校都纷纷建立起自己的局域网。

于是我就想到做一个在局域网里的多功能通讯软件,在局域网里,我们可以通过它,实现在局域网里联络,消息的发布等。

在学校建立的校园网里,这软件可以方便同学之间、教师之间、师生之间即时性的联络,这样,不用上Internet,可以节省资源。

在学校这个大环境里,这个软件可以方便同学之间联系,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,与教师讨论问题,并能最大限度地利用现有的网络资源,极大地提高工作效率。

这个软件包括服务器程序和客户端程序,服务器包括聊天信息即时转发,发送通知,数据库备份还原及数据库的初始化等功能。

客户端具有登陆,注册,修改个人信息,聊天等功能。

关键词:

VB,Winsock,Access,即时通讯软件

 

ABSTRACT

Inrecentyears,alongwiththefastdevelopmentofcomputertechnology,especiallythedevelopmentofcomputernetwork,thelifeofpeoplegetacompletechange,peoplecanusemoreconvenientandmorepracticalnetworkcommunicationsoftwarewithverylowprice,evennomoney.Now,therearekindsofon-lineservicesystem,which,andmakepeoplecanreal-timecommunicationoverthousandsofmilesaway.Thepast,oldcommunicationcan'tmeettheneedofmodernlife.Instantmessengersoftwareasaconvenientcontactbetweenthepracticaltoolsbroughtgreatconveniencetoourstudyandwork,greatlyimprovingtheefficiencyofworkandstudy.Becauseofitsfriendlyoutwardappearance,theformidablefunction,theuseconvenience,therelationpromptandsoonthecharacteristicwinsmodernpeople'sfavors,itsapplicationmarketisextremelybroad.

Nowadays,alotofenterprises,institutionsandschoolsLAN.SoIthoughtofmakingadifferentcommunicationssoftware.Wecanachievethroughit,thecontactinLAN,newsrelease,etc.Intheschoolcampus,theestablishmentofthesoftwarecanbeconvenientlybetweenteachersandstudents,betweenthecontactbetweenteacherandstudents.WeneednotgetontheInternet.Itcansaveresources.Intheschool,thissoftwareccanmakestudentsconvenientlinks.Studentscandiscussproblemswithotherstudentsandteachersthroughit.Thissoftwarecanmaximizeexistingnetworkresources,greatlyimprovingworkefficiency.Thesoftwareincludesserverprogramandclientprogram.Serverincludesreal-timechatmessagetransmitting,databasebackupnotification,anddatabaseofinitializationfunctions.Theclient,registration,modify,chat,personalinformationfunctions.

Keywords:

VB,Winsock,Access,InstantMessenger

第1章绪论

1.1课题的来源及意义

在网络无所不在的今天,在Internet上,有QQ、MSN等网上寻呼软件,极大程度上方便了处于世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发信息,不管对方是否也同时在线,只要知道他的号码。

现在,企业、机关、学校都纷纷建立起自己的局域网。

在局域网里,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常不方便的。

首先,在局域网里的网上邻居里,只能看到机器名,不清楚对方是谁,也不知道对方机器里有什么资源可以共享,而且当局域网内的机器很多时,这种方式更加麻烦。

于是,就想到做一个适用于局域网(校园网)的聊天工具,在局域网里,我们可以通过它实现局域网内方便的联络、进行消息的发布。

在学校的校园网里,这软件可以起到方便同学之间、教师之间、师生之间相互联络的作用。

这样,不用上Internet,可以节省资源,在学校这个大环境里,就可以同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,教师讨论问题,并能最大限度地利用现有的网络资源,极大地提高工作效率[1]。

1.2课题的目的

现在也有很多在局域网上不使用服务器的通讯软件,比如飞鸽传书,这种软件小巧且方便,也能解决一部分问题。

但是有服务器的通讯软件,可以保存用户的个人信息或介绍,供人查看。

而且,不使用服务器的通讯软件,是以机器为通讯单元的,而有服务器的通讯软件是以人为通讯单元,可以明确联络的对象,准确的找到对方。

总之,使用有服务器的通讯软件在局域网上通讯,会给我们带来更多的方便。

1.3课题的内容

这个基于socket技术的即时通讯软件是基于VisualBasic平台和Access数据库设计的。

软件的通讯协议是TCPIP协议,并且采用socket套接字和客户端服务器端(ClientServer)网络模型。

采用原型法设计可以使设计过程由浅入深,方便以后在功能上拓展软件。

本软件在需求分析后,进行初步设计,再经过反复调试,实现了聊天的基本功能。

第2章开发工具介绍

2.1VB简介

VisualBasic是一个功能强大的应用程序开发工具,在世界范围内得到了广泛的应用。

它之所以受到人们的青睐的主要原因有:

Windows是当今主流操作系统,而VisualBasic是开发Windows应用程序最简单易学的语言之一;VisualBasic引入了面向对象和事件驱动的程序设计思想,大大缩短了应用软件的开发周期;Microsoft(微软)公司十分重视VisualBasic的功能扩充,不断地把最新技术运用到VisualBasic中,使之可以完成几乎所有Windows应用程序的开发任务;已有越来越多的优秀软件支持用VisualBasic进行二次开发[2]。

用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。

如果对界面的效果不满意,还要回到程序中修改。

有时候,这种编程-编译-修改的操作需要反复多次,大大影响了软件开发效率。

VisualBasic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。

只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。

VisualBasic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率,这就为开发通讯软件提供了很大的便利。

4.0版以后的VisualBasic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。

在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而VisualBasic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。

在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,VisualBasic自动生成对象的程序代码并封装起来,每个对象以图形方式显示在界面上,都是可视的[3]。

VisualBasic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。

VisualBasic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。

VisualBasic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。

在设计VisualBasic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(EXE),脱离VisualBasic环境,直接在Windows环境下运行,直接方便了通讯软件的独立运行。

VisualBasic通过事件来执行对象的操作。

一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。

例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击”(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。

在用VisualBasic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。

这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。

VisualBasic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理MicrosoftAccess格式的数据库,并提供了强大的数据存储和检索功能。

同时,VisualBasic还能直接编辑和访问其他外部数据库,如DBase,FoxPro,Paradox等,这些数据库格式都可以用VisualBasic编辑和处理。

VisualBasic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQLServer,Oracle等。

在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户服务器(ClientServer)方案[4]。

利用动态数据交换(DynamicDataExchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。

当原始数据变化时,可以自动更新链接的数据。

VisualBasic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。

对象的链接与嵌入(OLE)将每个应用程序都看作是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。

OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看作是一个对象进行链接和嵌入,是一种应用程序一体化的技术。

利用OLE技术,可以方便地建立复合式文档(compounddocument),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作[5]。

VisualBasic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。

但它可以通过动态链接库的技术将CC++或汇编语言编写的程序加入到VisualBasic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。

此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能[6]。

2.2Access简介

Access是Office办公套件中一个极为重要的组成部分。

刚开始时微软公司是将Access单独作为一个产品进行销售的,后来微软发现如果将Access捆绑在Office中一起发售,将带来更加可观的利润,于是第一次将Access捆绑到Office97中,成为Office套件中的一个重要成员。

现在它已经成为Office办公套件中不可缺少的部件了。

自从1992年开始销售以来,Access已经卖出了超过6000万份,现在它已经成为世界上最流行的桌面数据库管理系统。

后来微软公司通过大量地改进,将Access的新版本功能变得更加强大。

不管是处理公司的客户订单数据;管理自己的个人通讯录;还是大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。

除了成为Web上数据交换的标准技术外,扩展标记语言(XML)也正迅速成为商务软件应用程序间交换数据时的首选技术方案。

MicrosoftAccess2003提供有功能强大而直观的XML数据共享功能,而无须考虑平台、数据格式、协议、架构或商务规则之间的差异。

利用熟悉的Access用户界面,您可以方便地利用Jet或SQLServer结构和数据创建XML数据或架构文档。

同时,还可使用来自窗体、报表和数据访问页中其他应用程序的XML数据。

例如,假设您的数据跨越各种不同的源分布:

包括内部SQLserver、Excel电子表格以及诸如SAP的其他数据提供程序。

由于这些源将XML用作自己的数据交换格式,因此可以在Access中创建一系列聚合查询,以将该数据拉入视图中,然后利用这些视图设计窗体和报表。

通过简化架构和样式表的创建和应用,Access还提供了便于控制数据的方法。

Access可通过一种标准一致的方式,便捷地描述丰富的结构化XML数据,同时也便于与其他应用程序间实现数据传输。

例如,可以使用Access创建描述数据结构的架构,然后将该架构发送给自己的供应商,以便他们准确了解您所期望的发票数据格式[7]。

第3章网络通讯程序的设计原理

3.1TCPIP协议

TCPIP是国际互联网所采用进行网际互连的通信协议。

IP互连协议(InternetProtocol),负责主机之间的传输数据。

TCP传输控制协议(TransmissionControlProtocol),负责在应用程序之间传递数据。

实际所称的TCPIP协议包括了在国际互联网上应用的一组协议,互联网协议组是此协议组的另一个名字。

这个协议组包括几种工作在不同层次上的网络协议,UDP用户数据报协议(UserDatagramProtocol),提供给用户进程的无连接协议,也负责在应用程序之间无连接传递数据,但不执行正确性检查。

ICMP互连网控制报文协议(InternetControlMessageProtocol),处理主机间的差错和传送控制。

ARP地址解析协议(AddressResolutionProtocol),负责将网络层地址转换成链路层地址。

RARP反向地址解析协议(ReverseAddressResolutionProtocol),负责将链路层地址转换成网络层地址。

TCPIP协议的核心是传输层协议(TCP、UDP)、网络层协议(IP)和物理接口层,这三层通常在操作系统的内核中实现。

TCPIP网络环境下的应用程序设计是通过网络系统编程界面Socket实现的,Socket提供应用程序与系统内核之间的网络编程接口。

协议可以是可靠的可以是不可靠的。

可靠的协议意味着当数据通过协议传递时,协议保证数据正确传输。

可靠传输包括几个特征。

首先,为了确保数据正确传送,协议在通信应用程序之间互相交换确认信息。

也就是说,程序每次发送一个报文时,都期望对方发送一个相当于说:

“我得到这个报文”的确认信息。

如果发送程序没有收到这样一个确认信息,程序将自动重新发送此报文,直到得到应答信息为止。

其次,为了确保传输的数据有效,可靠协议在每次传输时,都包含一个或更多的校验和(CRC)。

接收计算机重新计算校验和,与收到的校验和进行比较。

如果不匹配,就表明在传输过程中发生了错误。

传输控制协议TCP是一个使用校验和、确认信息以及其它可靠数据传输技术的可靠协议。

相比之下,不可靠协议不能确保数据正确传输。

协议试图传输数据,但不保证成功。

而且,不可靠协议在传输失败后,并不通知发送方应用程序。

可将不可靠数据传输比作没有返回地址的信件。

如果发送地址是错误的,由于邮递系统不能将信退回给你,所以你就不知道信件有没有送到。

即使发送地址是正确的,也不能保证邮递系统不丢失你的信件[8]。

TCPIP协议组中存在的两个基本数据服务是:

字节流服务和数据报服务。

使用字节流的协议将信息看作一串字节流进行传输。

协议不管要求发送或接收数据的长度和传送数目,只是将数据看作一个简单的字节串流。

使用数据报的协议将信息视作一个独立单元进行传输。

协议单独发送每个数据报——数据报之间不相互依赖。

例如,假设你使用字节流协议发送5个数据段(每个有10字节)和一个包含50字节的数据段(总共100字节)。

连接的接收方可以按每次20字节读数据(要读5次)。

传输控制协议是字节流协议。

字节流协议不关心每个数据段的长度。

如果应用程序使用字节流协议发送数据,则协议能够保证连接的另一端按照发送的顺序接收数据。

相比之下,传输到同一目的地的多个数据报可能不会按发送顺序到达。

如果接收方应用程序要求数据顺序一致,应用程序必须在数据到达后,校对这些数据。

用户数据报协议和互连网协议使用数据报传输数据。

数据报类似于信件。

如果你在同一天给同一个人邮寄两封信,你无法知道那个人先收到那封信。

同样,如果连续两天给两个人邮信,你也不能知道哪封信先收到。

收到信的顺序和发送顺序可能相反。

在TCPIP术语中,端口(Port)类似于IP地址,IP地址与主机地址是相联系的,端口和协议相联系。

IP数据报保存目的和源IP地址,同样传输协议也保存源和目的端口号。

如果端口这个概念对你来说很陌生,请考虑计算机上的硬件端口。

你可能编写过往硬件端口送数据的程序。

例如为了打印,如果没有其它程序的话,必须向串或并端口发送数据。

PC机给它的端口命名和编号。

例如,PC机的并行打印端口称为LPTl和LPT2,串行端口称为COM1和COM2。

在Internet上,网络只是简单地对协议端口编号。

在PC机,LPT1表示并行端口1。

成千的PC机应用程序使用此方案。

多年来,程序员编写PC程序时都假定LPT1表示并行打印端口1。

同样,程序员将每个Internet协议端口与一个特定的应用程序和功能联系在一起。

Internet包括像FTP、Telnet和Mail这样广泛使用的应用程序采用的应用协议,在Internet上,这些应用程序使用一种叫做“通用口分配”的端口。

通用口分配是特定应用程序广泛使用的一个协议端口。

像PC程序员使用打印端口LPT1用于打印,Internet程序员也对具体应用程序使用许多协议端口。

例如,平凡文件传输协议(FTP)的通用口分配是端口号21的。

Telnet的通用口分配是端口号23[8]。

3.2客户机服务器模型

客户机服务器(CS)模型是一种网络模型,它并不是定义了网络的层次结构,而是描述了一种网络程序运行的方式。

客户机服务器模型将网络应用程序分为客户和服务器两部分。

客户方对服务器方发送信息请求,服务器方对其做出相应回答,提供服务。

在TCPIP网络应用中,多数网络应用程序是使用客户机服务器模型设计的。

服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户程序提出了请求信息。

此时,服务程序被唤醒并且为客户提供服务,对客户的请求做出适当的反应。

虽然基于连接的服务是设计客户服务器应用程序的标准,但有些服务也是可以通过数据报Socket提供的。

通常,网络应用程序包含两个独立的应用程序:

客户程序和服务器程序。

但是,也可以设计同时完成这两种功能的程序,例如,一些服务器程序如果不能完成一个服务请求

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

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

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