利用JAVA实现简单聊天室

上传人:876****10 文档编号:141969444 上传时间:2020-08-14 格式:DOC 页数:23 大小:284.50KB
返回 下载 相关 举报
利用JAVA实现简单聊天室_第1页
第1页 / 共23页
利用JAVA实现简单聊天室_第2页
第2页 / 共23页
利用JAVA实现简单聊天室_第3页
第3页 / 共23页
利用JAVA实现简单聊天室_第4页
第4页 / 共23页
利用JAVA实现简单聊天室_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《利用JAVA实现简单聊天室》由会员分享,可在线阅读,更多相关《利用JAVA实现简单聊天室(23页珍藏版)》请在金锄头文库上搜索。

1、利用JAVA实现简单聊天室 作者: 日期:利用JAVA实现简单聊天室1.设计思路Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。而且,Java很小,整个解释器只需215K的RAM。因此运用JAVA程序编写聊天室,实现简单聊天功能。程序实现了聊天室的基本功能,其中有:(1)启动服务器:实现网络的连接,为注册进入聊天室做准备。(2)注册登陆界面:填写基本信息如姓名等,可以供多人进入实现多人聊天功能。(3)发送信息:为用户发送信息提供平台。(4)离开界面:使用户退出聊天室。(5)关闭服务器:断开与网络的连接,彻底退出聊天室

2、。2.设计方法 在设计简单聊天室时,需要编写5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。3 程序功能图及程序相关说明(1)主功能框图启动服务器注册界面发送信息(用户A)发送信息(用户B)发送信息(用户C)关闭服务器(2) 聊天室基本功能表序号文件名主要功能1ServerHost被服务器调用2Client显示聊天室3ClientUser被客户端调用4LogIn注册登陆5Objecting连接服务器6Server启动服务器4.程序代码是说明程序中引入的包:package Chat;impor

3、t .*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.io.*;(1)服务器端代码中用户自定义类:类名:Server作用:服务器启动继承的接口名:ActionListenerpublic class Server implements ActionListener定义的对象:count /记录点机关闭按钮次数2次关闭soconly /只有SOCKET,用于群发sockets /所有客户的SOCKETsocket_thread /Socket所在的线乘,

4、用于退出;frame / 定义主窗体panel /定义面板start,stop /启动和停止按钮主要成员方法:public void center /定义小程序查看器的位置public void actionPerformed /定义处理异常机制定义子类:serverRun,Details继承的父类名:Threadclass serverRun extends Thread /启线乘用于接收连入的Socketclass Details extends Thread /具体处理消息的线乘,只管发送消息创建一个ServerSocket 对象,用于接受指定端口客户端的信息ServerSocket s

5、erver = new ServerSocket(1234);接受请求时候,通过accept()方法,得到一个socket对象。Socket socket = server.accept();通过socket创建流(输入,输出)。BufferedReaderbr=newBufferedReader(newInputStreamReader(socket.getInputStream()DataInputStream dis = new DataInputStream(socket.getInputStream();PrintWriter out = new PrintWriter(socket

6、.getOutputStream();通过流,来和客户交互。(2)用户注册代码中相关类: 类名:LogIn作用:用户注册登录继承的接口名:ActionListener public class LogIn implements ActionListener定义的对象:Title /定义标题Name /提示输入姓名,添加注册信息Send /提示点击“进入”,进入聊天室构造方法:public LogIn()(3)客户端: 创建一个socket对象,用于连接服务器。 用socket创建流。 通过流和服务器进行交互。 交互完毕,将流和socket关闭。(4)聊天室:类名:Client作用:实现发送即时

7、信息。继承的接口名:ActionListenerpublic class Client implements ActionListener构造方法:public Client(String name2)异常处理:public void actionPerformed(ActionEvent e)public void connect()public void actionPerformed(ActionEvent e) 定义的子类:ClientSocket 继承的父类:Thread class ClientSocket extends Thread ()5.设计结果与分析5个Java源文件:S

8、erver.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。分别编译这5个Java源文件,或运行“javac *.java”命令,编译全部的源文件,然后运行连接服务器的主类,即运行Server类。连接完毕后在运行注册的主函数类,即运行LogIn类。 首先运行启动服务器的文件Server.java,运行结果如下:图1服务器启动成功结果分析:在进入聊天室之前必须先启动服务器,实现服务器端的连接为用户的登录打开“窗口”。其次运行用户注册登录文件LogIn.java,运行结果如下:图2用户登陆界面结果分析:添加用户信息,输入用户姓名

9、,为用户进入聊天室提供关口。并且利用以下语句实现如图3的界面 JLabel title=new JLabel(免注册版);JLabel name=new JLabel(输入姓名);JButton send=new JButton(进入);添加注册信息后点击“进入”按钮,结果如图3图3显示用户已登录结果分析:当服务器启动用户完成信息注册时,在服务期端的界面中会显示当前在线的人员,并且提示客户已连接到服务器,可以进行聊天行为。图4显示聊天内容结果分析:多个用户进入聊天室之后,用户可以在发送信息的文本框里填写自己的内容,点击“发送信息”按钮,信息会出现在上方的区域内,在界面的右方还可以显示在线人员的

10、姓名,另在线用户可以知道有谁在聊天室内。聊天结束点击“离开”按钮,结果如图5所示:图5离开聊天室点击服务器中的“停止”按钮,结果如图6.图7.所示:图6 点击“停止”按钮图7终止与服务器端连接结果分析:用户聊天结束点击“离开”按钮之后会在服务器端的界面上自动显示该用户已离开,提时、示服务器执行相关行为。离开界面:使用户退出聊天室;关闭服务器:断开与网络的连接,彻底退出聊天室。6语句实现(1)Server.javapackage Chat;import .*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import

11、 java.util.*;import java.io.*;public class Server implements ActionListenerint 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

12、 JButton(启动); JButton stop=new JButton(停止); public Server() panel.add(start); panel.add(stop); frame.add(panel,BorderLayout.NORTH); frame.add(area,BorderLayout.CENTER); frame.pack(); center(); frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); frame.setVisible(true); start.addActio

13、nListener(this); stop.addActionListener(this); System.out.println(new); public void center() Toolkit toolkit=Toolkit.getDefaultToolkit(); Dimension e=toolkit.getScreenSize(); int x=e.width/2-(int)(frame.getSize().getWidth()/2); int y=e.height/2-(int)(frame.getSize().getHeight()/2); frame.setLocation(x,y); public void actionPerfo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号