利用JAVA实现简单聊天室

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用JAVA实现简单聊天室

1.设计思路

Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。而且,Java 很小,整个解释器只需215K的RAM。

因此运用JAVA程序编写聊天室,实现简单聊天功能。程序实现了聊天室的基本功能,其中有:

(1)启动服务器:实现网络的连接,为注册进入聊天室做准备。

(2)注册登陆界面:填写基本信息如姓名等,可以供多人进入实现多人聊天功能。

(3)发送信息:为用户发送信息提供平台。

(4)离开界面:使用户退出聊天室。

(5)关闭服务器:断开与网络的连接,彻底退出聊天室。

2.设计方法

在设计简单聊天室时,需要编写5个Java源文件:、、、、。

3 程序功能图及程序相关说明

(1)主功能框图

(2) 聊天室基本功能表

4.程序代码是说明

程序中引入的包:package Chat; import .*;

import .*;

import .*;

import .*;

import .*;

(1)服务器端代码中用户自定义类:

类名:Server

作用:服务器启动

继承的接口名:ActionListener

public class Server implements ActionListener{

定义的对象:

count 计结果与分析

5个Java源文件:、、、、。分别编译这5个Java源文件,或运行“javac *.java”命令,编译全部的源文件,然后运行连接服务器的主类,即运行Server类。连接完毕后在运行注册的主函数类,即运行LogIn类。

首先运行启动服务器的文件,运行结果如下:

图1服务器启动成功

结果分析:在进入聊天室之前必须先启动服务器,实现服务器端的连接为用户的登录打开“窗口”。

其次运行用户注册登录文件,运行结果如下:

图2用户登陆界面

结果分析:添加用户信息,输入用户姓名,为用户进入聊天室提供关口。并且利用以下语句实现如图3的界面 JLabel title=new JLabel("免注册版"); JLabel name=new JLabel("输入姓名");

JButton send=new JButton("进入");

添加注册信息后点击“进入”按钮,结果如图3

图3显示用户已登录

结果分析:当服务器启动用户完成信息注册时,在服务期端的界面中会显示当前在线的人员,并且提示客户已连接到服务器,可以进行聊天行为。

图4显示聊天内容

结果分析:多个用户进入聊天室之后,用户可以在发送信息的文本框里填写自己的内容,点击“发送信息”按钮,信息会出现在上方的区域内,在界面的右方还可以显示在线人员的姓名,另在线用户可以知道有谁在聊天室内。

聊天结束点击“离开”按钮,结果如图5所示:

图5离开聊天室

点击服务器中的“停止”按钮,结果如图6.图7.所示:

图6 点击“停止”按钮

图7终止与服务器端连接

结果分析:用户聊天结束点击“离开”按钮之后会在服务器端的界面上自动显示该用户已离开,提时、示服务器执行相关行为。

离开界面:使用户退出聊天室;关闭服务器:断开与网络的连接,彻底退出聊天室。

6.语句实现

(1)

package Chat;

import .*;

import .*;

import .*;

import .*;

import .*;

public class Server implements ActionListener{

int count=0;

Vector soconly=new Vector();

HashMap sockets=new HashMap();

HashMap socket_thread=new HashMap();

ServerSocket serversocket;

JFrame frame;

JTextArea area=new JTextArea();

JPanel panel=new JPanel();

JButton start=new JButton("启动");

JButton stop=new JButton("停止");

public Server() {

(start);

(stop);

(panel,;

(area,;

();

center();

;

(true);

(this);

(this);

"new");

}

public void center(){

Toolkit toolkit=();

Dimension e=();

int x=2-(int)().getWidth()/2);

int y=2-(int)().getHeight()/2);

(x,y);

}

public void actionPerformed(ActionEvent e){

JButton btn=(JButton)();

if(btn==start){

serverRun serverrun=new serverRun();

"gogo");

();

}

if(btn==stop){

try{

Iterator i = ();

while ()) {

Socket s = (Socket) ();

ObjectOutputStream out = new ObjectOutputStream(s.

getOutputStream());

Objecting bj=new Objecting();

("系统消息-----服务器马上关闭!!!!!!请马上关闭客户端"); }

count++;

if(count==2){

(0);

}

(frame,"已通知客户端,请再次点击关闭按钮关闭");

}catch(Exception ex){();}

}

}

class serverRun extends Thread{

public void run(){

try{

"开始SERVERRUN");

serversocket=new ServerSocket(55555);

相关文档
最新文档