java类似QQ的聊天软件论文解析.docx

上传人:b****8 文档编号:30297988 上传时间:2023-08-13 格式:DOCX 页数:59 大小:327.21KB
下载 相关 举报
java类似QQ的聊天软件论文解析.docx_第1页
第1页 / 共59页
java类似QQ的聊天软件论文解析.docx_第2页
第2页 / 共59页
java类似QQ的聊天软件论文解析.docx_第3页
第3页 / 共59页
java类似QQ的聊天软件论文解析.docx_第4页
第4页 / 共59页
java类似QQ的聊天软件论文解析.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

java类似QQ的聊天软件论文解析.docx

《java类似QQ的聊天软件论文解析.docx》由会员分享,可在线阅读,更多相关《java类似QQ的聊天软件论文解析.docx(59页珍藏版)》请在冰豆网上搜索。

java类似QQ的聊天软件论文解析.docx

java类似QQ的聊天软件论文解析

 即时消息系统--本科毕业设计 收藏

 

摘要

 

随着网络通信技术和计算机技术的进一步发展,即时消息正在成为网络在线活动中不可缺少的业务。

本课题在现有的网络通信技术、数据库技术和编程技术的基础上设计并实现了网络即时消息系统。

该系统采用三层 C/S网络系统构架,采用多线程实现服务器的并发处理,采用 ODBC 接口访问 SQLServer2000数据库设计数据管理模块,采用J2SE平台和java语言去开发系统。

该系统按照软件工程思想采用面向对象和模块化设计方法设计,其中采用了网络通信技术、数据库技术、多线程技术等计算机技术,实现了网络通信的基本功能,具有通信即时性的特点。

在论文中,我们将会讨论网络即时消息系统的现状和发展,研究实现此系统的技术背景。

然后我们对系统进行需求分析。

按照要求,我们将进行总体设计和详细设计,如服务器端的设计,数据库的设计和客户端的设计。

最后实现系统的配置和使用。

本毕业设计所完成的网络即时消息系统的主要功能如下:

1.  服务器端:

后台启动、监视用户和发送系统消息;

2.  用户登录和注册;

3.  好友管理:

查找好友、添加好友和删除好友;

4.  通信:

发送消息、接收消息和聊天记录

5.  上线和隐身。

 

关键词:

即时消息系统,C/S三层结构,TCP/IP,  J2SE平台

 

 

 

 

 

 

 

 

 

 

  

Abstract

 

Withthefurtherdevelopmentofnetworkcommunicationtechnologyandcomputertechnology,InstantMessaginghasbeena  requirementofon-lineactivities.Thisproject  designandimplementation,theinstantmessagingbasedonthetopicoftheexistingnetworkcommunicationtechnology,databasetechnologyandprogrammingtechnology. 

 

Thissystemusescompositestructureofthree-tierC/Stodesignsystemarchitecture,usesmulti-threadingtoimplementserver’sparallelprocessing,usesODBCinterfacetoaccesstoSQLServerdatabasetodesigndatamanagementmodule,usesJ2SE(Java2StandardEdition)andObject-oriented programminglanguage ,java,todevelopthesystem.Thissystemisdesignedbyobject-orientedandmodulardesignmethod,whichusedcomputertechnologiesbasedonnetworkcommunicationtechnology,databasetechnology,Multi-threadingtechnology,softwarereuseandsoon,thissystemhasbasicfunctionsof  networkcommunication,,andhasfeaturesofinstant.

 

Inmydissertation,wewilldiscussthe status anddevelopmentofnetworkinstantmessenger,andresearchintherelevanttechnologybackground.Afterthatwewillanalysethe requirementofthesystem.Withtherequirementanalysis,wewillmakethe generaldesignanddetaileddesign,suchasserverdesign,databasedesignandclientdesign.Inthelastpart,wewillimplementthesystemandputitintopractice.

 

Thesystemhascompletedthefollowingmajorfunctions:

1.Server:

 Startup,surveillanceandsendsystemicmessage.;

2.Usermanagement:

registrationloginandlogout;

3.Friendmanagement:

find,addanddelete;

4.Communication:

sendingmessage,recerivingmessageandreceivingsystemmessage;

5.Onlineandhide.

 

KeyWords:

InstantMessenger,C/S Three-layerConstruction, TCP/IP,J2SEPlatform

 

 

 

 

 

 

 

 

 

目录

 

摘 要

Abstract

目录

第一章 绪论

1.1选题背景

1.1.1 即时消息系统的研究现状

1.1.2 即时消息系统的发展趋势

1.1.3论文研究的主要内容

1.2 技术背景

1.2.1C/S 模型

1.2.2TCP/IP 协议

1.2.3编程技术

第二章 系统分析与设计

2.1 需求分析

2.2系统总体框架

2.2.1总体设计

2.2.2功能模块

2.3系统详细设计

2.3.1多线程设计

2.3.2数据库设计

2.3.3服务器的设计

2.3.4客户端的设计

2.3.5消息通信的设计

第三章 系统实现

3.1数据库部署

3.1.1建立数据库

3.1.2 配置ODBC数据源

3.2 开发环境

3.2.1 构建JavaSE平台

3.2.2 安装开发工具eclipse

3.3 服务器端的实现

3.3.1 启动服务器后台

3.3.3 发送系统消息

3.4 客户端的实现

3.4.1 用户注册

3.4.2 登录

3.4.3程序主界面

3.4.3 添加好友

3.4.4 上线与隐身

3.4.5 聊天通信

第四章 总结

参考文献

致谢

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第一章绪论

 

1.1选题背景

 

1.1.1 即时消息系统的研究现状

即时消息系统[1](InstantMessenger,IM)是一种在后 PC 时代兴起的,以 Internet 网络为基础的,允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线状态的网络应用软件。

即时消息系统产生有着深刻的社会原因:

人们都有渴望社交,获得社会尊重、实现自我的需求,这正是即时消息软件风行的原动力,而物质文明的日益发达所带来副作用,又使得人们习惯与周围的人保持距离,以致人们更愿意对陌生人敞开心扉,在网络中可以跨越年龄、身份、行业、地域的限制,达到人与人、人与信息之间的零距离交流。

从这点上讲,即时消息系统的出现改变了人们的沟通方式和交友文化,大大拓展了个人生活交流的空间。

国内最为流行的即时消息软件是 OICQ(简称 QQ)。

它以良好的中文界面和不断增强的功能形成了一定的 QQ 网络文化。

该软件是由腾讯公司于 1999 年 2 月自主开发的基于Internet的即时消息系统。

腾讯QQ 目前已成为中国最主要的即时消息服务网络软件。

作为一种即时消息工具,QQ 支持显示好友在线、即时传送文字、语音和文件等功能。

 QQ 还与无线寻呼、GSM 短信息、IP 电话网互联,为用户提供互联网短信及信息增值服务。

腾讯 QQ 开发和拓展统一、高速、丰富的互联网应用平台、在线广告业务、移动通信业务、ISP及IP电话合作业务、企业商用即时消息服务、在线客户支持及在线呼叫业务。

1.1.2 即时消息系统的发展趋势

21世纪将是网络化、信息化的世纪,信息的融合已经成为社会发展的主流方向[2]。

即时消息系统将不断与信息交流领域的系统相互集成和渗透,扩展其自己的功能和应用范围,满足未来话音,数据和视频的多媒体应用需要,使即时消息以更丰富的接入方法,更高的服务质量,更友好的面貌呈现在世人的面前。

从功能角度来看,即时消息系统向支持全媒体方向发展,随着多媒体技术在网络应用中的发展,即时消息系统承载的媒体,不再局限于原来的文字、语音和文件的信息交换,信息载体扩展到图形、图像和流媒体等多媒体业务上。

目前ICQ 和 QQ预设了部分简单的表情图像,通过传输图像代码来传递表情图像,可以被视为即时消息开发商开发支持图形、图像为载体的即时消息软件的开端。

从应用范围角度来看,即时消息系统集中在 Internet 个人用户之间的信息交流应用,随着网络技术应用的发展,即时消息系统应用范围向园区化、集团化拓展,应用领域突破个人,而用于远程教学、远程医疗、远程演示、网络会议等领域。

1.1.3论文研究的主要内容

本论文的主要工作是利用编程技术建立一基于 J2SE 的即时消息系统,主要实现网络即时聊天功能。

在建立这个系统的过程中,我将会研究JAVA语言,多线程编程、网络编程以及数据据等方面的知识。

在我的论文中,我将会研究即时消息的发展,并针对不同即时消息工具之间不能互通的弊端,介绍即时消息系统中的应用。

为了更好地实现系统,我们还要研究J2SE 技术。

在论文中介绍了 J2SE 的体系结构、系统设计以及 J2SE 的开发环境。

熟悉了开发平台,我们还要了解基于TCP/IP 的 Socket 网络连接的基础知识,包括网络通信系统架构及 Socket 通信在该系统中的应用等内容。

在论文中将着重介绍网络即时消息系统的设计和实现,包括界面及各个功能模块的设计,给出了相应的流程图并对其功能做了详细描述,最终实现了客户端之间的即时聊天通信功能。

最后是结尾部分,对本文做了总结并针对该系统提出了一些不足和今后需要改进的地方。

 

1.2 技术背景

 

1.2.1 C/S 模型

在网络连接模式中,除对等网外,还有另一种形式的网络,即客户机/服务器网[3],Client/Server。

在客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。

这里客户和服务器都是指通信中所涉及的两个应用进程(软件)。

使用计算机的人是计算机的“用户”(user)而不是“客户”(client)。

但在许多国外文献中,也经常把运行客户程序的机器称为client(这种情况下也可把client译为“客户机”),把运行服务器程序的机器称为server。

所以有时要根据上下文判断client与server是指软件还是硬件。

它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client端和Server端来实现,降低了系统的通讯开销。

目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。

这也就是目前应用系统的发展方向。

1.2.2 TCP/IP 协议

1.IP

 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议[4]。

 IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。

IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。

IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。

高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。

也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。

IP确认包含一个选项,叫作IPsourcerouting,可以用来指定一条源地址和目的地址之间的直接路径。

对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。

这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。

那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。

2.TCP

如果IP数据包中有已经封好的TCP数据包[5],那么IP将把它们向‘上’传送到TCP层。

TCP将包排序并进行错误检查,同时实现虚电路间的连接。

TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。

应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

面向连接的服务(例如Telnet、FTP、rlogin、XWindows和SMTP)需要高度的可靠性,所以它们使用了TCP。

DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。

3.UDP

UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。

因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。

相对于FTP或Telnet,这些服务需要交换的信息量较小。

使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。

欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。

4.TCP与UDP的端口结构

TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。

用户使用Telnet客户程序与服务进程建立一个连接。

客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。

因而,这个连接是双工的,可以用来进行读写。

两个系统间的多重Telnet连接是如何相互确认并协调一致呢?

TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:

●        源IP地址:

 发送包的IP地址;

●        目的IP地址:

 接收包的IP地址;

●        源端口:

 源系统上的连接的端口;

●        目的端口:

 目的系统上的连接的端口。

端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。

一个端口对应一个16比特的数。

服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。

这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯

1.2.3编程技术

1.JAVA语言

Java[6]是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。

用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:

跨平台、动态的Web、Internet计算。

从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。

另一方面,Java技术也不断更新。

 Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。

Java对对象技术的全面支持和Java平台内嵌的API[7]能缩短应用系统的开发时间并降低成本。

Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。

特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。

2.Winsock

Windows下网络编程的规范-WindowsSockets是Windows下得到广泛应用的、开放的、支持多种协议的网络编程接口。

通信的基础是套接口(Socket),一个套接口是通讯的一端。

在这一端上你可以找到与其对应的一个名字。

一个正在被使用的套接口都有它的类型和与其相关的进程。

套接口存在于通讯域中。

通讯域是为了处理一般的线程通过套接口通讯而引进的一种抽象概念。

在一次网络通信/连接中有以下几个参数需要被设置:

本地IP地址 - 本地端口号 - 对方端口号 - 对方IP地址。

左边两部分称为一个半关联,当与右边两部分建立连接后就称为一个全关联。

在这个全关联的套接口上可以双向的交换数据。

如果是使用无连接的通信则只需要建立一个半关联,在发送和接收时指明另一半的参数就可以了,所以可以说无连接的通信是将数据发送到另一台主机的指定端口。

此外不论是有连接还是无连接的通信都不需要双方的端口号相同。

Socket 接口是访问 Internet 使用得最广泛的方法。

3.多线程编程

多线程[8]是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。

线程是在同一时间需要完成多项任务的时候被实现的。

使用线程的好处有以下几点:

  ·使用线程可以把占据长时间的程序中的任务放到后台去处理

  ·用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度

  ·程序的运行速度可能加快

  ·在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。

在这种情况下我们可以释放一些珍贵的资源如内存占用等等。

 多线程在JAVA里面的应用也是很广泛。

Java对多线程的支持是非常强大的,他屏蔽掉了许多的技术细节,让我们可以轻松的开发多线程的应用程序。

1.2.4开发平台

1.J2SE平台

Java2平台包括:

标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。

J2SE,J2ME和J2EE,这也就是SunONE(OpenNetEnvironment)体系。

J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

StandardEdition(标准版)J2SE 包含那些构成Java语言核心的类。

比如:

数据库连接、接口定义、输入/输出、网络编程定位在客户端,主要用于桌面应用软件的编程。

J2SE 包含那些构成Java语言核心的类。

比如:

数据库连接、接口定义、输入/输出、网络编程

2.SQLSERVER数据库

SQLServer2000 [9]的特性Microsoft®SQLServer™2000 的特性包括:

Internet 集成。

 SQLServer2000 数据库引擎提供完整的 XML 支持。

它还具有构成最大的 Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。

SQLServer2000 程序设计模型与 WindowsDNA 构架集成,用以开发 Web 应用程序,并且 SQLServer2000 支持 EnglishQuery 和 Microsoft 搜索服务等功能,在 Web 应用程序中包含了用户友好的查询和强大的搜索功能。

可伸缩性和可用性。

同一个数据库引擎可以在不同的平台上使用,从运行 MicrosoftWindows®98的便携式电脑,到运行 MicrosoftWindows2000 数据中心版的大型多处理器服务器。

SQLServer2000企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别。

企业级数据库功能。

 SQLServer2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。

数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。

SQLServer2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQLServer2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。

复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。

可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。

易于安装、部署和使用。

 SQLServer2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQLServer 的过程。

SQLServer2000 还支持基于标准的、与 WindowsDNA 集成的程序设计模型,使 SQLServer 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。

这些功能使您得以快速交付 SQLServer 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。

 

第二章系统分析与设计

 

2.1 需求分析

 

 此次开发的网络聊天工具可作为个人的交流工具使用,通信的安全性不是很高,但要求信息的响应速度要较快,让用户充分享受到网络即时消息的方便和快捷。

本聊天工具由服务器端程序和客户端程序两部分组成,整体采用JAVA平台开发,并使用SQLServer2000管理数据库数据。

服务器是可以监听和查看用户的基本操作;客户端程序面向实际用户,它有必要的界面的按钮,向用户提供网络即时消息的功能:

本聊天需包含如下基本功能:

1.客户端:

(1)新用户注册;

(2)用户登录验证;

(3)获取好友列表并显示好友状态(在线/不在线);

(4)添加用户好友;

(5)删除用户好友;

(6)用户与好友聊天(可查看聊天记录);

(7)接收系统信息。

2.服务端:

(1)启动和关闭后台服务器;

(2)查看客户端登录的相关信息(客户端登陆时间/登陆IP);

(3) 向所有在线用户发送系统消息。

 

2.2系统总体框架

 

2.2.1总体设计

网络即时通讯系统采用客户机/服务器(C/S)的模式来设计,是一个3层的C/S结构:

数据库服务器->应用程序服务器端->应用程序客户端。

系统采用C/S结构,可以将任务合理分配到客户机端和服务器端,从而降低了系统的通信开销,如图3.1所示:

图3.1  C/S 体系结构

 

1.     客户层

客户层也叫应用层,是应用程序的用户接口部分。

给聊天工具设计一个客户层具有很多优点,这是因为客户层担负着用户与应用间的对话功能。

它用于检查用户的输入数据,显示应用的输出数据。

为了使用户能直观地进

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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