导航:首页 > 编程语言 > java聊天室系统

java聊天室系统

发布时间:2022-05-30 23:13:05

java聊天室

无数据库版本;
================================= Client =================================
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;

@SuppressWarnings("serial")
public class ChatClient extends Frame {

TextField tfText = new TextField();
TextArea taText = new TextArea();
Socket s = null;
DataOutputStream dos = null;
DataInputStream dis = null;

public static void main(String[] args) {
new ChatClient().launchFrame();
}

ChatClient() {
super("Chat Client v1.1");
}

public void launchFrame() {

setBounds(200, 200, 400, 300);
setResizable(false);
add(taText, BorderLayout.NORTH);
add(tfText, BorderLayout.SOUTH);
pack();
taText.setEditable(false);
tfText.addActionListener(new tfTextListener());
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
disConnect();
System.exit(0);
}
});

setVisible(true);
connect();
new Thread(new StrGetIn()).start();
}

private void connect() {
try {
s = new Socket("127.0.0.1", 24031);
dos = new DataOutputStream(s.getOutputStream());
dis = new DataInputStream(s.getInputStream());
} catch (IOException e) {
System.out.println("服务器不存在或系统错误,请联系管理员,系统退出...");
System.exit(-1);
}
}

private void disConnect() {
try {
dos.writeUTF("Client exit...");
dos.close();
dis.close();
s.close();
} catch (IOException e1) {
System.out.println("无法关闭网络链接,系统非法退出...");
}
}

private class tfTextListener implements ActionListener {

public void actionPerformed(ActionEvent e) {
String str = tfText.getText().trim();
try {
if (!str.equals("")) {
//taText.append(str + "\n");
dos.writeUTF(str);
dos.flush();
} else {
taText.append("系统提示:****发送内容不能为空****\n");
}
} catch (IOException e1) {
System.out.println("网络连接错误,请联系管理员,系统退出...");
System.exit(-1);
}
tfText.setText("");
}

}

private class StrGetIn implements Runnable {
public void run() {
try {
while(true) {
taText.append(dis.readUTF());
}
} catch (IOException e) {
System.out.println("Client readUTF error");
}
}
}

}

⑵ 用java做一个聊天室系统需要用到哪些知识呢

以前做过一个,界面用swing表现就可以了,程序主要用到socket编程,不需要框架吧,DB,mysql,oracle都可以

如果用 web,直接用js+xml文件就可以实现了

⑶ java 开发的聊天室怎样添加系统时间

java取系统的时间的方法一般有两种:System.currentTimeMillis()取当前的时间戳,new Date() 默认的也是当前的时间。不知道你这问的是这个吗?

⑷ 怎么用java做局域网的聊天工具(聊天室)

呵呵,楼主您好!要用Java做聊天室说简单也不简单,但是说难呢也不难.
说简单点,就是会话跟踪技术(我个人这样理解).要做聊天室,您需要
使用到的工具: tomcat 服务器(因为是免费的,其他也可以哦,呵呵).
Myeclipse(sun公司提供的编写Java程序的工具,别说你不知道哈,
哪样的话我就晕倒了哦,呵呵)

页面框架的设计:index.jsp(聊天室主页面)index_top.jsp(聊天室的顶部页面)
usersonline.jsp(在线人数的统计及显示页面) sendMessage.jsp(发送信息的页面)
showMessage.jsp(显示聊天信息的页面)register.jsp(用户注册的页面)
login.jsp(用户登录页面)
当然,这是最简单的设计方式咯.您也可以设计得更好点.

页面介绍与功能:
index.jsp 主要是聊天室的主页面.由上中下3个框架组成,中间部分在分为
左右2个框架.实际上index.jsp就是一个由于5个框架组成的页面

顶部框架:放index_top.jsp页面.可以设计自己聊天室的特色(比如说:logo)
中间部分的左边框架:showMessage.jsp 显示聊天的信息
中间部分的右边框架:usersonline.jsp(在线人数的统计及显示页面)
底部框架:sendMessage.jsp 这个发送信息的jsp页面.不多说吧
聊天室的框架的设计大楷就是这样子咯

实现聊天:
1.编写一个servlet,用户处理的信息(包括验证用户是否登录和聊天信息)。
2.用户发送信息之后,将发送的信息存放到Application中(群聊)(放在session中就是私聊)
3.显示信息的页面每个XX秒中获取session或者Application中的数据显示出来就OK了

更多的东西还是需要您学习Ajax之后再做,会有不一样的效果哦。祝您成功哟.呵呵

⑸ 如何用Java编写一个聊天室程序,可以支持单聊和多聊

聊天程序又叫即时通讯系统
分类两部分:客户端和服务端
客户端:用户聊天的界面
服务端:接收消息并转发到指定用户
其中服务端和客户端用tcp或者udp连接,使用socket编程完成通信。
按着这个思路可以开发出一套聊天程序
客户端常用界面 bs版本的又layim
服务端 openfire或者自己实现

⑹ java聊天室界面如何做

JAVA聊天室要用到:
Swing图形用户界面。JAVA中数据库的操作,以及JAVA中网络的连接
当把这些知识学好,做一个聊天室应该是不成问题的。
Swing图形用户界面:实现窗口的显示。
数据库的操作实现用户登录,聊天记录存储等功能。
网络连接实现不同客户端聊天。
==

⑺ java的一个简单聊天室的系统结构,大概的跟我说一下。

定义要求:⑴完善的支持中文。由于Java编译器版本及运行环境的差异等原因,在Java语言的中文处理中常出现乱码等现象,表现在中文显示与网络传输不正常、中文不能输入等方面。在这个聊天室系统中我们将彻底解决中文的兼容性问题。⑵具有健壮性。即聊天室系统能够处理各种异常,能够识别和控制客户端的各种行为,能够返回清理不正常退出后所分配的系统资源,能够踢出超时连接用户以减轻服务器负载等。虽然Java语言本身能够自动收集处理无用的对象,但我们仍然需要作一定的清理工作。⑶广泛的适应性。因为我们不能要求聊天用户必须使用某种浏览器或操作系统,因此所编写的Java程序,尤其是Applet,必须能在各种平台的各个版本的浏览器上都能正常运行。考虑到网络用户的使用情况,我们定的标准是能适应以下版本的浏览器:Netscape 3.x,Netscape Communicator 4.x,Internet Explorer 3.x、4.x、5.x中英文版。设计实现:基于Java的Web聊天室系统包括聊天服务器和客户端两部分。聊天服务器是一个Java Application,与Web服务器程序运行在同一机器上。客户端部分即是一个含Java Applet的HTML页面,它由Web服务器传送给客户端浏览器,交由浏览器的Java虚拟机(VM)解释执行。该Applet初始化后与聊天服务器进行连接,聊天服务器对于每个连接请求产生一个连接线程(Connection Thread),来维护和管理与该客户端的会话。客户端的发言被传送到服务器端后由其向其他客户进行广播(Broadcast),达到相互聊天的目的。 在聊天服务器中,我们使用哈希表(Hashtable)来存储所有的连接线程。主线程为ChatServer,对于每个新的客户连接请求产生一个Connection线程。同时我们还运行了一个检查线程CheckActiveTimer,它相当于一个定时器,每隔一定时间就扫描所有的客户连接线程(即扫描Hashtable),检查每个客户连接是否超时(例如很长时间没有发言或者死机),并给出警告或直接踢出(Kick)用户。

⑻ Java实现一个简单的聊天室

基本原理就是弄一个全局的容器,每进来一个人,将ip等相关信息放入容器,有人发送消息时,遍历容器,向除它而外的所有人发送该消息。并不是很难,但是要考虑的细节还是不少的

⑼ 我做java的简易聊天室,已经可以群聊和私聊,如何把创建房间加进去,且只能同一个房间里才能群聊和私聊

我说下思路:
1、客户端创建房间时给每个房间分配惟一的一个房间ID,房间是公开的,每个连接的客户端都可以看到,房间属性,比如密码,比如黑名单,房间保存在Server内存当中,如果你使用了集群,建议存储到分布式缓存当中(Redis是最好的选择,其次是memcached),当创建完成后,将房间信息发送给所有客户端。新客户端连接进来时,客户端要主动从服务端拉取房间信息。建议采用服务端主动通知(房间增减,服务端主动通知给所有客户端)和客户端定时轮询(客户端起个定时任务,每隔一定时间主动向服务端拉取房间列表)的方式来保证房间列表的动态更新。
2、当客户端选择加入房间时,如果设置有加入条件,比如密码,那就提示客户端输入,如果是其他条件就判断加入客户端是否符合这个条件。服务端保存房间同客户端的关联关系(可以设计成一对多,也就是一个客户端只能在一个房间聊天,也可以设计成多对多,一个客户端可以同时加入多个房间聊天,主要看设计),并将这个消息通知给这个房间所有的客户端列表“欢迎***进入房间”(消息的发送者为系统,房间ID这个房间的ID,接收人无,表示是这个房间的公开消息,消息内容即:欢迎***进入房间。)
3、把聊天内容当成消息的话,那消息应该有这样的属性,发送人,房间ID(如果没有房间ID就当成系统公告消息,在所有房间显示),接收人(如果没有指定接收人,则是公开消息,如果有接收人,就是私聊消息,只能在同一个房间私聊,那在发消息的时候要判断下接收客户端的是否在这个房间列表当中)。
4、再来说消息路由设置,当客户端发送消息时,根据房间ID,找到这个这个房间内所有的客户端列表,如果没有指定接收人,那消息就推送给这个房间关联的所有客户端,如果指定有接收人,接收人不在这个房间,直接提示“***已经离开”,如果还在就把消息推送给这个指定的客户端。
5、房间的管理:踢人,把这个客户端从房间同客户端关联关系解除,并在房间显示消息“***被踢出房间”等等

阅读全文

与java聊天室系统相关的资料

热点内容
java调用oracle数据 浏览:827
怎么在服务器上上传小程序源码 浏览:304
空中加油通达信指标公式源码 浏览:38
分卷解压只解压了一部分 浏览:760
php网站自动登录 浏览:705
合肥凌达压缩机招聘 浏览:965
怎么找到文件夹的图标 浏览:235
linuxc编程pdf百度云 浏览:190
会计pdf下载 浏览:833
c开源cf源码 浏览:947
如何取消掉添加进app资源库 浏览:728
上海政务APP叫什么 浏览:812
黑马程序员一线薪资 浏览:110
滴滴app有青桔优惠券怎么用 浏览:123
删哪几个文件夹加速 浏览:29
创建电影源码爬取项目 浏览:453
java多余的空格 浏览:83
手机软件连接云服务器 浏览:888
内圆弧编程实例 浏览:48
饼干pdf 浏览:423