当前位置:文档之家› 基于Java即时聊天系统的设计与实现-毕业论文

基于Java即时聊天系统的设计与实现-毕业论文

毕业设计设计题目:学生姓名:学院名称:专业名称:班级名称:学号:指导教师:教师职称:学历:目录1 前言 (5)1.1 课题选题背景 (5)需求分析 (5)系统设计的要点 (6)2 涉及的相关技术及协议 (6)2.1 Java语言 (6)2.2 C/S模式介绍 (7)3 系统需求分析 (8)可行性分析 (8)3.2 系统功能需求 (8)3.3 系统性能需求 (9)3.4 即时信息加密和鉴别 (9)3.5 即时通讯系统需求 (9)4 系统设计 (10)即时聊天系统的实施原理 (10)软件设计流程 (11)功能模块划分 (12)4.4 数据库概要设计 (13)5 详细设计 (13)5.1 效劳器端的设计与实现 (13)5.1.2 主效劳器类的设计 (13)5.1.2 登录验证模块 (15)5.1.3 注册处理模块 (16)5.2 客户端的设计与实现 (16)5.2.1 用户注册模块 (16)5.2.2 用户登录 (18)5.2.3 在线用户显示设计 (19)5.2.4 聊天信息发送与接收 (20)5.3 数据库设计 (21)6 结论 (22)致谢 (22)参考文献 (24)附录 (25)基于Java即时聊天系统的设计与实现摘要:网络络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。

目前,出现了很多非常不错的聊天工具,其中应用比拟广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。

该系统开发主要包括一个网络聊天效劳器程序和一个网络聊天客户程序两个方面。

前者通过Socket套接字建立效劳器,效劳器能读取、转发客户端发来信息,并能刷新用户列表。

后者通过与效劳器建立连接,来进展客户端与客户端的信息交流。

其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。

开发中利用了计算机网络编程的根本理论知识,如TCP/IP协议、客户端/效劳器端模式〔Client/Server模式〕、网络编程的设计方法等。

在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些根本的软件工程的方法。

经过分析这些情况,该聊天工具采用Eclipse为根本开发环境和java语言进展编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进展不断修正和改良,直到形成可行系统关键词:即时通讯系统B/S C/S MySQL Socket SwingAbstract: The rapid development of computer network technology today, more immediate means of communication by people of all ages. Real-time chat tool in achieving the transmission of video and audio information, so that members can collaborate remotely intuitive, real audio and visual communication at the same time, use of multimedia technology, it can also help users to work in all kinds of information processing.Study of this issue is to support the exchange of internal network systems - network instant messaging system. The system uses Java programming language. System uses the C / S structure mode, support for LAN and Internet. The system uses the waterfall model of software development projects were discussed system requirements analysis, outline design, detailed design and coding, and run and test the whole system. Finally, the paper concluded. Keywords:Instant Messager; System; B/S C/S MYSQL Socket Swing1 前言目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN〔新版改名为Live Messenger〕以及跨平台Gaim等。

本人取最具代表性的QQ和MSN进展了一些研究,作为我开发聊天系统的准备。

课题选题背景随着计算机网络技术的开展,网络聊天工具已经成为人们日常交流的一种重要工具。

它通信速度快,本钱低,更重要的是方便人们信息的交流和资料的传递,所以开发一个易于操作并拥有友好界面的聊天工具可以较好地解决现实生活中通信费用高昂以及的单线程通信等问题[1]。

QQ聊天系统是一款基于互联网的即时通信系统,它允许人们利用英特网技术实时地传送信息,并且能让用户选择性地承受或拒绝其他用户的信息。

由于QQ有着出色的通信性能并且其用户普及度较高,因此本课题在模仿QQ的前提下,设计了一款具有聊天功能及其他附加功能的软件目前即时聊天系统种类众多,功能也较为齐全。

该课题现在所研究的即时通讯系统,其目标是定位于企业内部网络,解决企业或单位的沟通及协同的问题,提高工作效率。

企业内部员工可以利用该通讯系统随时随地发送文字消息、进展多人群聊、消息群发、传送文件、音频视频对话等。

系统包括客户端程序和效劳器端程序,支持局域网和Internet。

企业内部员工之间可以在内部网覆盖的任何地点、任何时间进展即时交流,真正实现企业内部协同工作。

使您不必花费大量的时间、金钱聚集到一个地方,通过网络,就能实现面对面的沟通,提高了效率。

MSN、QQ等公共消息系统,由于聊天对象及内容的不可控,假设在企业内部使用,可能会降低工作效率。

而该即时通讯系统将自己的效劳器端安装在企业内,并且人员的创立是由系统管理员来完成,因此很好的解决了这个问题。

随着计算机网络技术的开展,网络聊天工具已经成为人们日常交流的一种重要工具。

它通信速度快,本钱低,更重要的是方便人们信息的交流和资料的传递,所以开发一个易于操作并拥有友好界面的聊天工具可以较好地解决现实生活中通信费用高昂以及的单线程通信等问题[1]。

QQ聊天系统是一款基于互联网的即时通信系统,它允许人们利用英特网技术实时地传送信息,并且能让用户选择性地承受或拒绝其他用户的信息。

由于QQ有着出色的通信性能并且其用户普及度较高,因此本课题在模仿QQ的前提下,设计了一款具有聊天功能及其他附加功能的软件需求分析聊天系统最重要的是效劳器端和客户端两个方面。

效劳器端有两个主要任务:(1)效劳器端应当建立一个ServerSocket,并且不断进展监听,判断是否有客户端连接请求或断开连接。

(2)效劳器端应当是一个信息发送中心,所有客户端的信息都传到效劳器端,由效劳器端根据要求分发信息给客户端。

客户端要完成的工作:(1)与效劳器端建立通信通道,向效劳器端发送信息。

(2)接收来自效劳器的应答信息。

解决了上述的4个问题,也就完成了聊天系统的核心任务。

系统设计要点聊天系统的设计主要是提供满足用户双方直接进展实时聊天的效劳,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:(1)实现思想在Internet上的聊天程序一般都是以效劳器提供效劳端连接响应,用户通过客户端程序登录到特定效劳器,即可与登录在同一效劳器上的用户进展交流,这是一个面向连接的通信过程。

因此,要在TCP/IP环境下[4-5],实现效劳器端和客户端两局部程序。

(2)效劳器端工作流程效劳器端通过socket()系统创立一个ServerSocket来对客户端进展接收,并与指定的本地端口绑定bind(),就可以在端口进展监听listen()。

Map<String,socket>用以存储用户姓名和对应的Socket。

通过ChatRoomServerThread线程类来处理不同请求。

如果有客户端连接请求,那么给出一个相应的Socket,将客户端地址赋给这个Socket。

登录成功的用户就可以在效劳器上聊天。

(3)客户端工作流程客户端程序相对简单,只需要建立一个Socket与效劳器端连接,成功后通过这个Socket来发送和接收数据即可。

2 涉及的相关技术及协议为了保证课题能正常实施,先来分析一下课题所需要的相关技术和协议。

2.1 Java语言经过认真的讨论分析,综合各种计算机高级语言的特征和适应范围,最终决定选择纯面向对象的Java语言来完成毕业论文的设计,下面就技术可行性方面,对Java 语言作一简要介绍。

Sun公司的口号就是“网络就是计算机〞,Java能使所有东西从桌面计算平稳的转变为基于网络的计算,它是专门为此而建立的,并显然是为了完成这个任务而来的。

使用Java语言,可以相对轻松的一天编写一个有条理的网络程序。

今天,Java的网络功能正在飞跃开展,不断有新的特性增加到这个有价值的根底上,JavaSoft实验室正在不断努力使Java更加完善。

就Java语言的主要特点,本人归纳如下:Java程序设计的开发过程与运行环境Java是解释型的高级编程语言,所以Java 程序的开发通常需要经过编写源程序、编译生成字节码和运行三个过程。

这里要提到,Java应用程序的开发周期包括编译、下载、解释和执行几个局部。

Java编译程序将Java 源程序翻译为JVM可执行代码—字节码。

这一编译过程同C/C++的编译有些不同。

当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而产生的。

因此,在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。

Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将这些符号引用信息保存在字节码中,由解释器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址。

这样就有效的保证了Java的可移植性和平安性。

【2】C/S模式介绍20世纪90年代出现并迅速占据主导地位的一种计算模式为客户机/效劳器模式,简称为C/S模式,它实际上就是把主机—终端模式中原来全部集中在主机局部的任务一分为二,保存在主机上的局部负责集中处理和汇总运算,成为效劳器;而下放到终端的局部负责为用户提供友好的交互界面,称为客户机。

相关主题