基于JAVA的分布式聊天系统设计(含源文件)

基于JAVA的分布式聊天系统设计(含源文件)
基于JAVA的分布式聊天系统设计(含源文件)

毕业论文

题目:基于JAVA的聊天系统设计

学生姓名: ***

学生学号: 079080617

系别: ********

专业:******** 届别: 2011

指导教师:***

********2011届本科毕业论文

目录

未找到目录项。

基于JAVA的分布式聊天系统设计

学生:**

指导老师:***

*******************

摘要:随着互联网的快速发展,网络聊天软件已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。本次设计的聊天系统就是模仿腾讯QQ来设计的。该系统开发主要包括网络聊天服务器程序和网络聊天客户端程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来的信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程]1[。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端架构(C/S)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和JAVA语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统。

关键字:JAVA;分布式;局域网; Socket;C/S

Distributed JAVA-based chat system

Student:***

基于JAVA的分布式聊天系统设计

Supervisor:****

*************************************

Abstract:Along with the fast development of Internet, the network chating tool has already become one kind of important communication tools and received more and more web cams favor. At present, many extremely good chating tools have appeared . for example, Netmeeting, QQ, MSN-Messager and so on. This system development mainly includes two aspects of the server procedure of the network chat and the customer procedure of the network chat. The former establishes the server through the Socket, the server can read and deliver the information which client side sends, and can renovate the users tabulation. The latter make a connection with the server, carries on communication between the client side and the client side. With the LAN correspondence mechanism principle, through inheritting the Thread kind to establish the multithreading directly. In the development, it uses the elementary theory knowledge which the computer network programmes. for example, TCP/IP agreement, Client/Server pattern, network programming design method and so on. In the network programming, it realizes reading and transmission of the information, that is,informaton flows realize the information exchange, introduce information flow analysis for realizing a system, in which containes some basic software engineering methods. After analyzes these situations, this LAN chating tool takes Eclipse as the basic development environment and compiles in JAVA language. first, it will establish the system application prototype in a short time. then, for the initial prototype system, it needs constantly revised and improved, until a viable system.

Key words:JAVA; distributed; lan; Socket;C/S

前言

网上流行的诸如QQ的即时聊天工具是我们所熟知的聊天系统,只要记得对方的号码,上网时可以呼他,无论他在哪里,都可以和他进行即时聊天。这些软件系统大多都采用C/S工作模式]2[,制作这些软件的公司在互联网上免费提供下载客户端程序,却不提供服务器程序。所以对于未与互联网连接的私有网络,这些软件根本就用不上,更不会提供程序源代码。为了弄懂这些软件的工作原理,所以我就开始着手本课题的研究。

分布式系统(distributed system)]3[是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否

********2011届本科毕业论文

分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。基于网络的软件系统大多都是分布式系统,只不过在系统的复杂程度上有所区别而已。这次研究的聊天系统就是典型的分布式系统。

JAVA本身就是一种分布式语言。JAVA语言支持Internet应用的开发,在基本的JAVA应用编程接口中有一个网络应用编程接口(JAVA net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket]4[等。JAVA的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

1 概述

1.1 开发背景

随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台。其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,易于维护和更新。

1.2 JAVA语言简介

JAVA是一个由Sun公司开发而成的新一代编程语言。使用它可在不同种机器、不同种操作平台的网络环境中开发软件。不论你使用的是哪一种WWW浏览器,哪一种计算机,哪一种操作系统,只要WWW浏览器上面注明了“支持JAVA”,你就可以看到生动的主页。JAVA已经逐步成为Internet应用的主要开发语言。它彻底改变了应用软件的开发模式,带来了自PC机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。

JAVA的出现是计算机信息交换的一个重要里程碑。在单机时代,程序进程之间靠共享存储进行变量交换;在网络时代,运行在不同宿主机上的程序按网络协议进行无格式的消息(二进制字符流)交换,消息的语义由交换程序双方维护;在JAVA时代,运行在网络上的程序进程交换的是小应用程序(Applet)。它是一个对象,由一组属性和方法构成,是一个可执行的实体;不仅有数据的状态,

基于JAVA的分布式聊天系统设计

而且有定义在数据上的操作。未来可能进行代表(Agent)交换,代理有一定的智能性,那便是信息交换的更高级阶段。

1.2.1 JAVA语言的特点

1.简单性

2.面向对象

JAVA语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。

3.分布性

JAVA是面向网络的语言。通过它提供的类库可以处理TCP/IP协议]5[,用户可以通过URL地址在网络上很方便地访问其它对象。

4.鲁棒性

5.安全性

用于网络、分布环境下的JAVA必须要防止病毒的入侵。JAVA不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。

6.体系结构中立

7.可移植性

8.解释执行

9.高性能

10.多线程

多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。

11.动态性

1.2.2 JAVA环境配置

********2011届本科毕业论文

本方案设计采用Eclipse ,在进行具体的操作之前,需要给系统下载安装jdk,安装完成jdk之后,还需要对系统环境变量进行设置。步骤如下:

第一步:进入我的桌面,右击“我的电脑”,选择“属性”选项,进入“系统属性“对话框,单击”高级标签“,如图1-1所示。

第二步:点击上图箭头所示“环境变量”,进入图1-2画面。

图1-1 系统属性图1-2 环境变量

第三步:单击“系统变量”部分的“新建按扭”,创建JAVA-HOME变量,在变量值栏内输入C:\jdk1.4.2_05; 如图1-3所示:JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径C:\jdk1.4.2_05,此路径下包括lib,bin,jre 等文件夹。

图1-3 编辑系统变量

第四步:同样的方法创建CLASSPATH 变量,在变量栏内输入.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)CLASSPATH为JAVA加载类(class or lib)路径,只有类在classpath中,JAVA 命令才能识别。

基于JAVA的分布式聊天系统设计

第五步:在变量栏内输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin创建PAT,Path使得系统可以在任何路径下识别JAVA命令。

第六步:检测配置是否成功:

编写一个JAVA程序,例如:

public class HelloWorldApp

{

public static void main(String args[])

{

System.out.println(“HelloWorld!”);

}

}

首先把它放到一个名为HelloWorldApp.java的文件中,这里,文件名应和类名相同,因为JAVA解释器要求公共类必须放在与其同名的文件中。然后对它进行编译:

c:\>JAVAc –g HelloWorldApp.java

编译的结果是生成字节码文件HelloWorldApp.class。最后用JAVA解释器来运行该字节码文件:

c:\>JAVA HelloWorldApp

结果是在屏幕上显示“Hello World!”。表明环境变量配置成功。

1.3 分布式简介

所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。分布式网络存储技术是将数据分散的存储于多台独立的机器设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务器的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。

1.分布式应用

********2011届本科毕业论文

最近的分布式计算项目已经被用于使用世界各地成千上万位志愿者的计算

机的闲置计算能力,通过因特网,您可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命;您可以寻找超过1000万位数字的梅森质数;您也可以寻找并发现对抗艾滋病病毒的更为有效的药物。这些项目都很庞大,需要惊人的计算量,仅仅由单个的电脑或是个人在一个能让人接受的时间内计算完成是决不可能的。

2.分布式计算与互联网的普及

随着计算机的普及,个人电脑开始进入千家万户。与之伴随产生的是电脑的利用问题。越来越多的电脑处于闲置状态,即使在开机状态下CPU的潜力也远远不能被完全利用。我们可以想象,一台家用的计算机将大多数的时间花费在“等待”上面。即便是使用者实际使用他们的计算机时,处理器依然是寂静的消费,依然是不计其数的等待(等待输入,但实际上并没有做什么)。互联网的出现,使得连接调用所有这些拥有限制计算资源的计算机系统成为了现实。

1.4 JAVA语言在分布式系统的应用

分布式计算不是一门年轻的技术,早在上个世纪70年代末便已是计算机科学的一个独立分支了;它也不是一门冷僻的技术,从C/S模式到P2P模式]5[,从集群计算到网格计算,乃至风靡当下的云计算,都是其表演的舞台。另一方面,JAVA作为一门应网络而生的语言,对分布式计算有着天然的友好性,同时也是当今最流行的编程语言。然而令人稍感意外的是,以“分布式JAVA应用”为专题的书籍并不多见,佳作则更少。至于国人所著者,请恕在下孤陋,尚未得见。不过细想之下,其实不足为奇。要开发一个高质量的分布式JAVA应用,以达到高性能、可伸缩、高可用、低延迟的要求,同时保证一致性、容错性、可恢复性和安全性,是何等的不易啊。它对程序开发的挑战在于:不仅需要对JAVA语言、类库、各种框架及相关工具极为熟悉,还需要对底层的JVM机制]6[、各种网络协议有足够的了解;它对分析设计的挑战在于:不仅需要熟悉传统的应用架构模式,还需要掌握适用于分布式应用的架构模式和算法设计。此外,分布式应用对数据库管理员、测试分析人员等也提出了更高的要求。

大型应用通常会拆分为多个子系统来实现,对于JAVA来说,这些子系统可能部署在同一台机器的多个不同的JVM]7[中,也可能部署在不同的机器上,但

基于JAVA的分布式聊天系统设计

这些子系统又不是完全独立的,要相互通信来共同实现业务功能,对于此类JAVA应用,我们称之为分布式JAVA应用。对于分布式JAVA应用,本系统设计主要采用一种非常典型的方法来实现,即基于消息方式实现系统间的通信方式:

当系统之间要通信时,就向外发送消息,消息可以是字节流、字节数组,甚至是JAVA对象,其他系统接收到消息后则进行相应的业务处理。消息方式的系统间通信,通常基于网络协议来实现,常用的实现系统间通信的协议有:TCP/IP和UDP/IP。TCP/IP是一种可靠的网络数据传输的协议。TCP/IP要求通信双方首先建立连接,之后再进行数据的传输。TCP/IP负责保证数据传输的可靠性,包括数据的可到达、数据到达的顺序等,但由于TCP/IP需要保证连接及数据传输的可靠,因此可能会牺牲一些性能。UDP/IP是一种不保证数据一定到达的网络数据传输协议。UDP/IP并不直接给通信的双方建立连接,而是发送到网络上进行传递。由于UDP/IP不建立连接,并且不能保证数据传输的可靠,因此性能上表现相对较好,但可能会出现数据丢失以及数据乱序的现象。

2 需求分析

2.1 系统说明

聊天系统不外乎两个方面,服务器端和客户端。简单分析一下两个方面所要完成的任务,对设计这个程序来说,等于完成了一半。首先来看一下服务器端的任务:

1.服务器端应当建立一个ServerSocket,并且不断进行侦听是否有客户端连接或者断开连接(包括判断没有响应的连接超时)。

2.服务器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。

以上就是服务器端最主要的两个任务。不难看出,服务器端的任务并不复杂。

客户端应该完成的工作包括:

1.与服务器端建立通信通道,向服务器端发送信息。

2.接收来自服务器的信息。

********2011届本科毕业论文

相对服务器而言,客户端的任务更加简单,有了以上的简单分析,可以知道,解决上述四个问题,即完成了该聊天系统的核心。

2.2 系统功能简介

2.2.1 基本功能

1.户可以注册。

2.用户可以登录。

3.用户可以添加好友。

4.用户可以删除好友。

5.用户可以发送和接收消息。

2.2.2 界面设计

程序界面主要参考腾迅公司的QQ2000,在实现时采用的JAVA的Swing图形包。开发工具用的是Eclipse。用户在使用的过程中一目了然。

3 系统设计

3.1 系统设计思想

聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:

1.实现思想

在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。

2.服务器端工作流程

服务器端通过Socket()系统调用创建一个Socket数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个Socket。然后登录成功的客户就可以在服务器上聊天了。

基于JAVA的分布式聊天系统设计

3.客户端工作流程

客户端程序相对简单,只需要建立一个Socket与服务器端连接,成功后通过这个Socket来发送和接收数据就可以了。

3 .2 聊天系统的功能模块设计

3.2.1 聊天系统工作原理图:

3.2.2 聊天系统功能图

********2011届本科毕业论文

图3-2 聊天系统功能结构图

3.2.3 数据库设计

系统采用任何一种流行的,Java支持的数据库,本系统采用了Microsoft公司的SQL Server2000作为后台数据库。通过对现在流行的一些Icq的参考,建立数据库,名为javaicq,数据库共建立两个表,一个是用户的基本信息,包括呢称,Jicq号码等。一个是用户的好友表,包括用户自己的号码和好友的号码。

(1)用户的基本信息表(表名icq)

表3-1 用户的基本信息表(表名icq)

择)

(2)用户的好友表(表名friend)

表3-2 用户的好友表(表名friend)

基于JAVA的分布式聊天系统设计

4 详细设计

4.1 开发环境工具

基于JAVA聊天系统的设计主要运用JAVA与语言与Socket类结合而开发。其开发的主要环境包括:

服务器端:(Windows平台)首先应有JAVA环境jdk,建议采用jdk1.4以上,另外还需配置classpath环境变量,本系统开发工具为Eclipse。

客户端:只要有JAVA环境jdk就可以,建议jdk1.4。

4.2 详细代码及说明(因篇幅有限,省略代码)

4.2.1 服务器程序设计

服务器与客户间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,JAVA API]8[为处理套接口的通信提供了一个类https://www.360docs.net/doc/ce9491547.html,.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为8080,然后无限循环调用accept()]9[方法接受客户程序的连接

4.2.2 客户程序设计(部分)

客户通过Socket(InetAddress,port)建立与服务器的连接。服务器与客户都通过构造BufferedReader,PrintWriter来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的Socket对象。客户端然后向服务器发送消息,比如注册,登录,查找好友等,服务器收到来自客户的请求后,针对不同的消息处理请求, 虽然UDP不可靠但是对于icq可靠性并不太重要,而且UDP快速,所以客户间发送信息通过UDP]10[。用户登录时通过类DatagramPacket和DatagramSocket创建UDP包括其本地接受端口以及发送端口,默认端口为5000和5001,通过取得的好友的IP地址来向好友发送消息(send(DatagramPacket)和接受消息

(receive(DatagramPacket))。当用户通过UDP收到消息后,可以通过DatagramPacket的方法InetAddress getAddress()得到对方的ip地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户选择该用户查看消

********2011届本科毕业论文

息,如果好友列表没有该人就显示收到陌生人的消息。用户可以按陌生人按钮查看消息。

1.用户注册。当服务器收到用户的注册请求,便开始接受客户传第的信息,诸如客户的呢称啦,性别,籍贯,头像,个人资料等,接受完毕后,便通过JdbcOdbc 与后台数据库连接,然后向数据库添加记录,如果成功,便向客户返回其Jicq 号码,并在数据库中注册用户的IP地址,然后更新其Status为1即用户在线。客户收到服务器返回的信息后,便打开主程序窗口,并同时开始创建UDP以便在用户之间建立联系。

部分程序代码如下:

void jButton1_mouseClicked(MouseEvent e) {

try{

Socket socket=new Socket(InetAddress.getByName(sername),serverport);

BufferedReader in=new BufferedReader(new

InputStreamReader(socket.getInputStream()));

PrintWriter out=new PrintWriter(new BufferedWriter(

new OutputStreamWriter(socket.getOutputStream())),true);

out.println("new");

out.println(nickname.getText().trim());

out.println(password.getPassword());

out.println(email.getText().trim());

out.println(info.getText().trim());

out.println(place.getSelectedItem());

out.println(headpic.getSelectedIndex());//head picindex

int no;

no=Integer.parseInt(in.readLine());

//System.out.print(no);

String str=" ";

str=in.readLine().trim();

if(str.equals("false"))

基于JAVA的分布式聊天系统设计

JOptionPane.showMessageDialog(this,"对不起,出错了:- (","ok",https://www.360docs.net/doc/ce9491547.html,RMATION_MESSAGE);

else{

JOptionPane.showMessageDialog(this,"your

javaicq#is"+no,"ok",https://www.360docs.net/doc/ce9491547.html,RMATION_MESSAGE);

this.dispose();

MainWin f2=new MainWin(no,sername,serverport);

f2.setVisible(true);}

//System.out.println("\n");

//}while(!str.equals("ok"));

// socket.close();

}catch(IOException e1){}

}

}

2.用户登录。在客户端,用户输入其jicq号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过JdbcOdbc]11[读取数据库,然后与用户输入的信息比较,如果相同就向客户返回成功消息并将其Status字段设为1表示上线了以及注册其IP地址,否则返回错误,如果客户收到成功信息就打开主窗口,否则提示出错。如果成功,便打开主程序窗口,并同时开始创建UDP以便在用户之间建立联系。然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的friend表,得到好友的号码后,再在icq表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,比如头像,呢称。并且建立几个矢量(Vector)用以存储好友的呢称,jicq号码,头像编号,ip地址等信息。部分程序如下:

void login_mouseClicked(MouseEvent e) {

try{Socket socket=new Socket(InetAddress.getByName(server),serport);

BufferedReader in=new BufferedReader(new

InputStreamReader(socket.getInputStream()));

PrintWriter out=new PrintWriter(new BufferedWriter(

********2011届本科毕业论文

new OutputStreamWriter(socket.getOutputStream())),true);

out.println("login");

out.println(jicq.getText());

out.println(password.getPassword());

String str=" ";

do{

str=in.readLine().trim();

if(str.equals("false"))

JOptionPane.showMessageDialog(this,"对不起,出错

了:-(","ok",https://www.360docs.net/doc/ce9491547.html,RMATION_MESSAGE);

else{

this.dispose();

int g=Integer.parseInt(jicq.getText());

MainWin f2=new MainWin(g,server,serport);

f2.setVisible(true);

}

//System.out.println("\n");

//}while(!str.equals("ok"));

}catch(IOException e1){}

}

3.用户添加好友。客户登录后,按查找按钮后,开始向服务器发出查找服务器读取数据库表icq并向客户返回其结果,客户收到后在查找窗口中显示,如果用户选择了一个好友,就向服务器发送添加好友请求,服务器收到后就向数据库表friend中添加自己的号码以及好友的号码,并从icq表中读取其基本信息返回给客户端,然后客户收到并在主窗口显示该好友。并且通过UDP通知该客户,对方收到该消息后,可以选择添加该用户为好友或者不。

4.用户删除好友。用户在其好友列表中选择要删除的好友并按删除,然后向服务器发送删除请求,服务器收到请求后,连接数据库表friend删除用户及该好

基于JAVA的分布式聊天系统设计

友的记录,如果成功就向客户返回成功消息,客户收到后在其好友列表中删除该好友。

5.用记发送和接收消息。用户通过在好友列表里的好友的ip地址,通过UDP 与其他用户进行信息交流。

5 测试

首先启动服务器,如下图:

图5-1 准备启动服务器

当点击停止退出时,则服务器就断开与客户端的连接,停止通信。当服务器启动成功之后,如下图:

********2011届本科毕业论文

图5-2 服务器准备就绪

然后从客户机连接,在局域网内固定一台计算机为服务器,所以IP和端口号都是固定的。然后客户从登录窗口进行登录,因此登录界面如下:

图5-3 客户机连接服务器

当连接失败时则出现如下界面:

基于JAVA的分布式聊天系统设计

图5-4 客户机连接失败

当连接服务器成功之后,就可以进行客户机之间的交谈,交谈界面如下:

图5-5 聊天界面

交谈过程中如果发生意外与服务器中断,则会弹出如下对话框:

图5-6 错误信息

另外可以在客户端界面中设置关于软件设计的信息,如下图:

********2011届本科毕业论文

图5-7 软件信息

6 总结

6.1 毕业设计总结与展望

本毕业设计实现了简单位的实时聊天功能,经过细心的调试和排错解决了绝大部分的问题。但几乎每一个计算机程序都会有这样那样的不足,尤其是未经过精心维护的非商业软件。本聊天系统程序对于初涉此领域的毕业设计课题来说,尤其在开始初期,感觉逻辑复杂,难以控制,因此至今还有许多未能解决的缺陷。

目前本聊天系统还有待完善的功能如下:

1.聊天系统缺乏好友列表;

2.没有实现文件发送功能;

3.也没有详细考虑聊天室管理功能。

尽管毕业设计到现在已接近尾声,但是对于上述的缺陷,本人还会不断对聊天系统进一步的完善它,期望在今后的日子里凭借自身的技术把系统做成一套深受欢迎的聊天系统。

6.2 经验和感想

基本JAVA聊天室开发与实现作为毕业设计,是本人目前做过的最大的程序。

平时自己也常到其它聊天室进行聊天,因此,自己也曾想过以后学会了电脑就一定亲自设计一款聊天系统,如今,总算实现了自己的梦想。基本JAVA聊天系统设计与实现毕业设计正是建立在JAVA平台上,是本人以前未曾接触过的领域。凭着探索新知识的热情,我选择了该设计题目。

Java源代码___聊天室

Java 聊 天 室 制作人:_____杨永生_____ 制作时间:2012.9.26 目录 1本文简介 (2) 2聊天室截图与说明 (2) 2.1用Java编译: (2) 2.2服务器登录界面 (2) 2.3服务器窗口 (2) 2.4客服端登录界面 (3) 2.5客服端窗口 (3) 3服务器端 (6) 3.1MyServer()方法 (6) 3.2Login()方法 (10) 3.3Time()方法 (13) 4客户端 (14) 4.1MyClient()方法 (14) 4.2Login()方法 (18) 4.3Time()方法 (20)

1 本文简介 这是一个简单的Java聊天室,仅提供给一些刚学Java的学生做实验,本文也是仅供参考. 本文代码都有注释,希望读者能读懂代码,本实验内部还有一些错误,比如只能一条一条的发信息,不能连发,希望能解决本问题的朋友能给我发信息,我的QQ号就是百度号! 2 聊天室截图与说明 2.1 用Java编译: 本代码有七个类,放在六个java文件中,类名在下方希望读者自己观看, 2.2 服务器登录界面 要先运行服务器端的程序 用户名:y 密码:1 用户名密码可以自己设定点击确定可以登录,2秒后到服务端界面 2.3 服务器窗口

聊天室的IP为本机的网络虚拟IP,在任何电脑上都能用,端口应设置在1024以后, 2.4 客服端登录界面 和服务器端的登录一样 2.5 客服端窗口

当登录上后客服端就显示已经连接了,此时服务器端的窗口如下

由于本程序设计的不是很完整,具体的聊天要先从客服端开始: 在客服端输入一条聊天内容后按确定,在服务器端就可以收到信息,之后客户端不能输入了,要等待服务器端来信息后才能继续输入信息. 想要结束聊天,直接可以关闭窗口,也可以输入’bye’后断开聊天

基于java socket的聊天室项目文档

北京邮电大学软件学院 2010-2011 学年第 1学期实训项目文档 (每个项目小组一份) 课程名称:全日制研究生实训 项目名称:通信软件实训 项目完成人: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 指导教师: 日期:2011年1月21日

基于java socket的聊天室实现 一 . 实训项目目的和要求(说明通过本项目希望达到的目的和要求) 目的:熟练掌握socket编程原理,并用java socket实现聊天室 要求:实现p2p和聊天室功能 二 . 实训项目开发环境(说明本项目需要的环境) 开发工具:Eclipse SDK Version: 3.5.2 和NetBeans 6.9.1 版本 系统:win7 三 . 实训项目内容(说明本项目的内容,如:问题分析、设计方案、算法、设计图等) 1.问题分析 网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台 主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协 议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一 地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的 或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要 关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务 器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。 客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运 行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户, 同时自己继续监听服务端口,使后来的客户也能及时得到服务。 两类传输协议:TCP;UDP。TCP是Tranfer Control Protocol的简称, 是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个 顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或 接收操作。

图书管理系统-java代码Word版

import java.awt.*; import java.awt.event.*; import java.sql.*; import java.util.*; import javax.swing.*; // --------------------------------------------------------------------------------------------------------- class Tsgl { public static void main(String args[]) { dbframe db = new dbframe("图书管理程序"); } } // 图书管理系统主界面 class dbframe extends Frame implements ActionListener { MenuBar daohang = new MenuBar(); // 建立菜单栏 Menu mfile = new Menu("功能"); // 建立“功能”菜单组 Menu mhelp = new Menu("帮助"); // 建立“帮助”菜单组 MenuItem mdenglu = new MenuItem("登陆"); MenuItem mchaxun = new MenuItem("查询"); MenuItem mtianjia = new MenuItem("添加"); MenuItem mshanchu = new MenuItem("删除"); MenuItem mexit = new MenuItem("退出"); MenuItem mhelpp = new MenuItem("关于"); Denglu pdenglu=new Denglu(); Ptianjia ptianjia = new Ptianjia(); Pmain pmain = new Pmain(); Pchaxun pchaxun = new Pchaxun(); Pshanchu pshanchu = new Pshanchu();

java课程设计报告__利用java实现简单聊天室(可编辑)

java课程设计报告_-_利用JAVA实现简单聊天室 利用JAVA实现简单聊天室 1.课程设计目的 在当今的信息时代,越来越多的聊天工具被应用,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。使用Java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。 此次课程设计的题目为简单的聊天室,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 2.设计方案论证 2.1设计思路 Java是一种简单的,面对象的,分布式的,解释的,键壮的安全的,结构中立的,可移植的,性能很优异的多线程的,动态的语言Java去掉了C++语言的许多功能,如:指针运算、结构、typedefs、#define让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。这将减少平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。Java简单聊天室,它是图形界面、线程、流与文件等技术的综合应用其界面主要采用了包程序实现了的基本功能有:Pentium 2.8GHz以上

内存:256MB以上 硬盘空间:80G以上 操作系统:Windows XP 运行环境:JDK,JCreator 2.5 程序功能图及程序相关说明主功能框图 图1 程序基本框图 表1 聊天室基本功能表 序号 文件名 主要功能 1 ServerHost 被服务器调用 2 Client 显示聊天室 3 ClientUser 被客户端调用 4 LogIn 注册登陆 5 Objecting

JAVA聊天室系统的设计与实现

目录 第1章绪论- 1 - 1.1论文背景及课题来源 (1) 1.2本课题在国内外的发展状况 (1) 1.3应解决的问题及系统开发意义 (1) 第2章开发工具及相关技术介绍........................................................................................................... - 2 - 2.1J A V A与S OCKET简介 .. (2) 2.2JB UILDER5介绍 (3) 2.3C/S模型介绍 (3) 2.4用J A V A实现S OCKET模型 (4) 2.5J A V A中的线程模型简介 (5) 2.6SQL SERVER2000简介 (5) 第3章系统需求分析............................................................................................................................... - 6 - 3.1系统任务描述. (6) 3.2系统功能分析 (6) 3.2.1 系统的功能需求....................................................................................................................... - 6 - 3.2.2系统数据流图............................................................................................................................ - 7 - 3.2.3系统数据分析............................................................................................................................ - 8 - 3.3系统可行性分析 (9) 第4章系统设计 .................................................................................................................................... - 11 - 4.1系统总体结构设计 (11) 4.2数据库设计 (12) 4.3系统功能模块详细设计 (13) 第5章编码与实现 ................................................................................................................................ - 16 - 5.1系统主要模块代码 (16) 5.1.1启动、停止服务器.................................................................................................................. - 16 - 5.1.2客户端连接服务器.................................................................................................................. - 17 -

Java图书管理系统-附源码

目录 题目简述 -------------------------------- 01 需求分析 -------------------------------- 01 数据结构 -------------------------------- 01 功能模块 -------------------------------- 02 程序设计 -------------------------------- 02 运行截图 -------------------------------- 04 分析总结 -------------------------------- 08 程序源码 -------------------------------- 08

图书信息管理系统 题目简述: 题目名称:图书信息管理系统 要求:使用图形用户界面,用数据库建立1或2个图书信息表,能连接数据库并实现查询、增加、删除、修改等功能。 需求分析: 图书信息管理系统应该具备图书的信息管理功能和流通管理功能。其中,信息管理功能包括查找,增加,修改,删除,显示全部信息等模块。流通管理功能包括图书借阅,归还等模块。因此分别设计各个模块,实现不同的功能。 数据结构: 用SQL Sever 建立数据库的表,用一张表存放图书的ID号码,图书名称,图书的所有者,图书状态,图书的使用者(允许为空)。具体设计如下图所示: 图书ID,图书名称,图书所有者,图书的状态,图书使用者(允许为空)均为varchar(50)类型,在Java中可以方便的查询。图书存储信息的具体内容如下图所示:

功能模块: 程序设计: 主框架设计: 主框架上方包含三个按钮,分别是“系统管理”、“图书信息管理”和“图书流通管理”,定义JMenuBar类的对象、JMenu类的对象和JMenuItem类的对象,分别表示菜单栏、菜单组和菜单选项,然后调用初始化函数,将不同类的对象通过setText()函数设定不同的文本,然后将其添加到窗口容器中。对每个按钮分别添加不同的消息监听,响应相应的消息,调用不同的类完成不同的功能。消息监听功能详见源代码bookMain类。 图书信息管理模块包括增加图书,删除图书,编辑图书,查找图书和显示图书信息。具体的方法实现在bookBean中实现,当用户点击相应的按钮时,消息监听模块就会调用bookBean的构造函数产生一个bookBean的对象,然后通过对象调用bookBean类中的相应方法,完成事件的相应。 增加图书信息模块: 调用bookAdd类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话

基于JAVA局域网聊天软件_毕业设计论文-

本科毕业论文(毕业设计) 题目:局域网聊天软件 系院: 学生姓名: 学号: 专业: 年级: 完成日期: 指导教师:

摘要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。 关键字:多线程;客户机/服务器;JA V A ;Socket ;Eclipse ;TCP/IP

Abstract as the network become more and more developed, people become more and more lean to the network, and can not leave with out it. This caused the chat materials become more numerous, as the overseas ICQ system, the OICQ system that invented by Tencent Co., and so on. So we create a network chat medium just like the QQ.Java network programming based on the power, the use of Java designed to prepare graduates a chat system. In general, the majority of the chat tool for client and server program in addition to server-side storage of customer data for the database,the system uses a client / server architecture model the adoption of Java provided Socket class connect client and server and between the client and server communicate with each other, as the chat is to provide point-to-multipoint and multi-threaded Java function to be completed by using multi-threaded chat and more point-to-multipoint, database management system with SQL Server2000 the completion and adoption of JDBC-ODBC Bridge access the database. The system built on the JAVA platform, the system design using object-oriented technology and object-oriented design principles. System uses the C / S structure, client and client-side and server-side client and send messages through Socket. The use of JAVA language, development tools using Eclipse. Design and Implementation of server-side process, the use of multi-threading technology, which can process in a single run at the same time a number of different threads, the implementation of different tasks. Procedures greatly enhanced the use of server resources. Chat system will allow people to complete chat to more friends,and the system can add, delete somebody,can deal with new user registration, send messages, receive messages and so on. Keywords : Multithreading ; Client/Server ;JA V A ;Socket ;Eclipse ;TCP/IP

基于JAVA的聊天系统的设计与实现

** 科技大学电信学院课程设计说明书 设计题目:基于java的聊天系统设计与实现学院、系:计算机系 专业班级:计算机2011-1班 学生姓名: 指导教师: 成绩: 2013年10月27日

基于JAVA的聊天系统的设计与实现 摘要 网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server 模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该聊天工具采用Eclipse为基本开发环境和java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统 关键词:即时通讯系统 B/S C/S MySQL Socket Swing

目录 第1章引言 (1) 1.1 开发背景 (1) 1.2 开发目的和意义 (1) 1.3 论文研究内容 (2) 第2章即时通讯系统的相关研究 (3) 2.1 C/S开发模式 (3) 2.2 B/S开发模式 (3) 2.3即时通讯原理 (4) 2.4 Java web 、Struts2、AJAX、JavaScript应用技术 (4) 2.5 MySQL数据库应用技术 (4) 2.6 Socket通信技术 (4) 2.7 开发环境的搭建 (5) 第3章系统分析 (6) 3.1 系统基本功能描述 (6) 3.2 可行性分析 (6) 3.3 系统需求分析 (7) 3.3.1功能分析 (7) 第4章系统设计 (9) 4.1 数据库设计 (9) 4.2 系统模块设计 (10) 4.2.1 聊天系统工作原理图 (10) 4.2.2 系统功能模块图: (11) 4.2.3 系统用例图: (11) 4.2.4 活动图: (12) 4.3 系统类设计 (14) 4.3.1 Message类的设计 (14) 4.2.2 截图类的设计 (15) 4.2.3 聊天记录类的设计 (16)

基于java的图书管理系统源代码

基于java的图书管理系统源代码声明:本系统是基于C/S的图书管理系统,主要使用的是Oracle数据库,下面附所有实现代码 package library; import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.ResultSet; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class book_add extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager(); ResultSet rs; JPanel panel1,panel2; JLabel book_id_label,book_name_label,author_label, press_label,press_date_label,price_label,book_num_label,borrowed_num _label,a ddress;

JAVA聊天室实验报告

JA V A聊天室实验报告 姓名:马琳越 班级:131114 学号:13111368 日期:2014年4月23日

目录 目录 (2) JA V A程序课程设计任务书 (3) 摘要 (4) 第1章引言 (5) 第2章聊天室系统的设计 (7) 第3章界面设计 (11) 第4章总结 .................................................................................. 错误!未定义书签。

Java聊天室的设计任务书 1.主要内容 用JA V A实现基于C/S模式的聊天室系统。聊天室分为服务器端和客户端部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。 2.具体要求 A.服务器端主要功能 (1).在特定端口上进行侦听,等待客户端连接。 (2).用户可以配置服务器端的侦听端口,默认端口为8888。 (3).向已经连接到服务器端的用户发送系统消息。 B. 客户端主要功能 (1).连接到已经开启聊天服务的服务器端。 (2).用户可以配置要连接的服务器端的IP地址和端口号。 (3).用户可以配置连接后显示的用户名。 (4).用户可以向所有人或某一个人发送消息。 3.主要参考文献及运用工具 (1)Bruce Eckel 著Thinking in Java ,李刚著疯狂Java讲义 (2)使用技术:Java 使用开发工具:Eclipse

摘要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。基于Java网络编程的强大功能,本次大作业要求使用Java编写一个聊天系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,但是,由于自己数据库知识的部分遗忘,本程序未连接数据库,采用客户机/服务器架构模式,通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。

基于java的聊天室—客户端大学论文

河北农业大学 本科毕业论文(设计) 题目:基于JA V A的聊天室—客户端 摘要 随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。 这个项目是用Java技术制作的,其中Java是一种程序设计语言,它具有简单的、面向对象、分布式、健壮性、安全性、可移植性等特点,并且提供了多线程的功能,使得在一个程序里可同时执行多个小任务,开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和Java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,同时,采用多线程、多任务的设计思想,开发出性能稳定,功能全面的服务器。完整的实现系统的功能。通过本次毕业设计可以学到如何应用和实现面向对象的各种方法,如何使用Eclipse集成开发环境来创建和开发项目,从而完整的实现整个系统的功能。 该系统主要包括了服务器端和客户端界面使用两部分,其中服务器端用来接收新用户的注册和注册用户的登录验证以及进行服务器信息和用户信息的管理,其中用到了Socket套接字建立服务器,服务器能读取、转发客户端发来的信息。客户端通过注册界面让新用户进行注册;通过登录界面使用已注册的用户名和密码登录到聊天服务器;用户通过登录验证后即可进行在线聊天。多用户的即时聊天功能必须使用Thread类来建立多线程。本聊天系统采用Eclipse为基本的开发环境,用java语言进行程序的编写的。 关键词:客户端/服务器,多线程,聊天,socket

图书管理系统java代码

import .*; import .*; import .*; import .*; // --------------------------------------------------------------------------------------------------------- class Tsgl { public static void main(String args[]) { dbframe db = new dbframe("图书管理程序"); } } // 图书管理系统主界面 class dbframe extends Frame implements ActionListener { MenuBar daohang = new MenuBar(); // 建立菜单栏 Menu mfile = new Menu("功能"); // 建立“功能”菜单组 Menu mhelp = new Menu("帮助"); // 建立“帮助”菜单组 MenuItem mdenglu = new MenuItem("登陆"); MenuItem mchaxun = new MenuItem("查询"); MenuItem mtianjia = new MenuItem("添加"); MenuItem mshanchu = new MenuItem("删除"); MenuItem mexit = new MenuItem("退出"); MenuItem mhelpp = new MenuItem("关于"); Denglu pdenglu=new Denglu(); Ptianjia ptianjia = new Ptianjia(); Pmain pmain = new Pmain(); Pchaxun pchaxun = new Pchaxun(); Pshanchu pshanchu = new Pshanchu();

Java Socket实现多人聊天室

Java Socket实现多人聊天室---swing做UI 标签:socket聊天javaexception服务器string 2011-08-31 15:06 20679人阅读评论(25) 收藏举报 分类: java(21) 版权声明:本文为博主原创文章,未经博主允许不得转载。 今天翻硬盘的workspace发现一个Java Socket实现多人聊天室的源码,不记得是什么时候的事情了,貌似不是我写的。但写得还不错, 至少算个有模有样的聊天室工具。我简单的修改了一下,拿出来跟大家分享一下,仅供参考。。。 界面是用swing写的,还不懒,简约大方。有图有真相:

正如上图所示,这个程序分为服务器端和客户端,说白了就是两个main class,用eclipse 直接运行之。。。。。 聊天室的设计思想是:在局域网下,利用socket进行连接通信,当服务器端启动的时候,利用Thread线程不停的等待客户端的链接;当有客户端开启连 接的时候,服务器端通过IO流反馈“上线用户”信息给客户端,客户端也使用线程不停的接收服务器的信息,从而实现多人在线聊天功能。 程序中有三个类,分别Server.java(服务器端)、Client(客户端)、User.java(javabean)。代码如下: Server.java(服务器端): [html]view plaincopy 1.import java.awt.BorderLayout; 2.import java.awt.Color; 3.import java.awt.GridLayout; 4.import java.awt.Toolkit; 5.import java.awt.event.ActionEvent;

基于java的聊天系统(客户端+服务器)

课程设计答辩记录 教师主要 提问记录 学生回答 问题情况 课程设计成绩评定 答辩成绩(50%)课程设计报告撰写质量(50%)总分 是否同意通过□同意□不同意答辩小组成员签名:年月日

封面 成都信息工程学院 课程设计 基于JA V A的聊天系统的设计与实现 作者姓名:王时成 班级:网络094班 学号:2009121150 指导教师:曾令明 日期:2011年 12月 12 日 作者签名:

基于JA V A的聊天系统的设计与实现 摘要 随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。与此同时,也造成了很多的问题,比如员工上班聊QQ等等,为了防止这类事件,并且利用企业部门和部门之间,员工和员工之间以及员工与部门之间的交流,需要企业拥有自己的一套交流系统。该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承Thread 类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用MyEclipse为基本开发环境和java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统 关键词:局域网聊天 socket java

基于JavaWeb的图书管理系统的设计与实现

题目基于J a v a W e b的图书管理 系统的设计与实现 指导老师****** 专业班级 姓名******* 学号***** 年月*日

摘要:计算机信息处理系统的引进已彻底改变了许多系统的经营管理模式。图书管理系统是学校管理机制中的重要组成部分,通过对图书管理系统的运行管理机制进行调查研究,开发了此图书系统。本系统中解决了学校图书管理事务中的常用基本问题以及相关统计工作。本系统中包含6个功能模块:系统设置,读者管理,图书管理,图书借还,系统查询和更改口令。本系统使有Jsp进行网页界面的设计,使用MVC设计模式,采用了开源框架Struts,它采用了当今软件设计的最新技术,具有开发效率高、设计灵活、生成的软件界面友好美观等特点。本系统中通过JDBC驱动和数据库进行无缝连接,后端的数据库是Sql Server,也是一个开源的数据库系统,该数据库具有较高的完整性,一致性和安全性。 关键词:图书管理;管理事务;Jsp;Struts;MVC设计模式

目录 引言 (1) 1 系统概述 (1) 1.1 项目任务 (1) 1.2 课题意义 (1) 1.3 论文的工作和安排 (2) 2 图书借阅管理需求分析 (2) 2.1 可行性分析 (2) 2.1.1 技术可行性 (2) 2.1.2 经济可行性 (3) 2.2 图书借阅管理系统需求概述 (3) 2.2.1 系统目标 (3) 2.2.2 用户类和用户特性 (3) 2.3 图书借阅管理系统需求模型 (4) 2.3.1 功能描述 (4) 2.3.2 图书管理员详细功能描述 (5) 2.3.3 读者详细功能描述 (5) 3 总体设计 (6) 3.1 数据库设计 (6) 3.1.1 数据库设计概述 (6) 3.1.2 图书信息表结构设计 (6) 3.1.3 图书类型信息表结构设计 (7) 3.1.4 读者信息表结构设计 (7) 3.1.5 读者类型信息表结构设计 (8) 3.1.6 图书借阅信息表结构设计 (8) 3.1.7 图书归还信息表结构设计 (9) 3.1.8 用户信息表结构设计 (9) 3.1.9 图书馆信息表结构设计 (9)

JAVA聊天室(参考实现)

第一章基于JAVA的聊天室设计与实现 一、设计目的: 信息技术的高速发展给人类生产,生活带来了广泛而深远的影响。“上网冲浪”“数码相机”“PDA”、“彩屏手机”、“蓝牙技术”等新产品,新概念层出不穷,不断冲击着人们的视听。这些高科技成果为人们带来便捷、快乐的同时,也促进了人机交互技术的发展。人机交互是关于设计、评价和实现供人们使用的交互式计算机系统,并围绕相关的主要现象进行研究的科学。它主要研究人与计算机之间的信息交换,涉及计算机科学,心理学,认知科学等诸多学科,是信息技术的一个重要组成部分,并将继续对信息技术的发展产生巨大影响。 聊天室是一项应用广泛,并且实用性强的一个非常典型的人机交互系统。在信息世界里,聊天工具的使用是非常频繁的,如MSN、QQ、校内通,之类的聊天工具许多人都正在使用。此次设计的聊天室系统虽然其功能简单,但是在开发技术和过程中,能够充分学习和使用JAVA的技术,进一步培养学生面向对象程序设计的思想,加深对面向对象程序设计四大特性的理解。

第二章功能介绍 1.需求分析 人们日常生活中越来越多地使用聊天室这项应用来为自己的工作和学习服务。一个操作简单,界面友好、运行稳定的聊天室对于小型局域网的用户可以起到很好的交流作用。所谓聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过聊天室将自己融入整个主流社会中。 根据目前使用聊天室的用户需求显示,用户对于聊天室主要有以下几点要求: (1). 与聊天室成员一起聊天,可以与聊天室成员私聊 (3). 可以改变聊天内容风格,用户注册(含头像)、登录 (4). 服务器,服务器过滤非法内容。 (5). 服务器发送通知,保存服务器日志,保存用户聊天信息。。 该简易聊天室是为许多喜爱聊天的用户开发设计的,和许多大型的网络聊天室相比该小聊天室功能比较简单,但能实现基本的聊天功能,点对多、点对点聊天和基本的用户功能,登录、查看在线用户等。 2、软件功能描述 (1)、用户设置:用户自定义自己的登录名,成功设置后,服务端能接收到新设置的用户名; (2)、登录功能:在服务端开启的情况下,用户可以以自己自定义或者默认的登录名和登录地址端口登录到客户端,并能在服务器端显示登录状态; (3)、公聊:用户可以与“所有人”聊天,在线用户可正常接收并正确显示公聊消 (4)、私聊:用在线用户和其他用户聊天。记录对于聊天室的其他用户是不可见的。 (5)、聊天心情:用户在聊天的过程中可以选择相应的心情来表达自己的情感。 (6)、系统消息:服务端运行,为每一个用户都能接收服务器端发送的信息提示信息。 (7)、用户的状态.每一个客户端用户都可以实时看到目前其他在线用户的状态。 (8)、用户剔除:用户可以被系统剔除,并重新登记登录名和地址。 (9)、用户退出:用户可以在正常情况下退出聊天室。 (10)、服务端控制:服务端开启的情况下,用户才能登陆成功和聊天;用户设置的地址端口也必须与服务端的侦听端口一致,否则不能登录。

java聊天程序开题报告

大连大学 本科毕业论文(设计)开题报告 论文题目:JA V A聊天程序的设计与实现学院:信息工程学院 专业、班级:计科113 学生姓名:韩宗秋 指导教师(职称):王明军(讲师) 2015年 3 月 5 日填

毕业论文(设计)开题报告要求 开题报告既是规范本科生毕业论文工作的重要环节,又是完成高质量毕业论文(设计)的有效保证。为了使这项工作规范化和制度化,特制定本要求。 一、选题依据 1.论文(设计)题目及研究领域; 2.论文(设计)工作的理论意义和应用价值; 3.目前研究的概况和发展趋势。 二、论文(设计)研究的内容 1.重点解决的问题; 2.拟开展研究的几个主要方面(论文写作大纲或设计思路); 3.本论文(设计)预期取得的成果。 三、论文(设计)工作安排 1.拟采用的主要研究方法(技术路线或设计参数); 2.论文(设计)进度计划。 四、文献查阅及文献综述 学生应根据所在学院及指导教师的要求阅读一定量的文献资料,并在此基础上通过分析、研究、综合,形成文献综述。必要时应在调研、实验或实习的基础上递交相关的报告。综述或报告作为开题报告的一部分附在后面,要求思路清晰,文理通顺,较全面地反映出本课题的研究背景或前期工作基础。 五、其他要求 1.开题报告应在毕业论文(设计)工作开始后的前四周内完成; 2.开题报告必须经学院教学指导委员会审查通过; 3.开题报告不合格或没有做开题报告的学生,须重做或补做合格后,方能继续论文(设计)工作,否则不允许参加答辩; 4.开题报告通过后,原则上不允许更换论文题目或指导教师; 5.开题报告的内容,要求打印并装订成册(部分专业可根据需要手写在统一纸张上,但封面需按统一格式打印)。

基于JAVA的分布式聊天系统设计(含源文件)

毕业论文 题目:基于JAVA的聊天系统设计 学生姓名: *** 学生学号: 079080617 系别: ******** 专业:******** 届别: 2011 指导教师:***

********2011届本科毕业论文 目录 未找到目录项。 基于JAVA的分布式聊天系统设计 学生:** 指导老师:*** ******************* 摘要:随着互联网的快速发展,网络聊天软件已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。本次设计的聊天系统就是模仿腾讯QQ来设计的。该系统开发主要包括网络聊天服务器程序和网络聊天客户端程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来的信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程]1[。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端架构(C/S)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和JAVA语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统。 关键字:JAVA;分布式;局域网; Socket;C/S Distributed JAVA-based chat system Student:***

相关文档
最新文档