当前位置:首页 » 编程语言 » java聊天工具

java聊天工具

发布时间: 2022-04-20 15:50:46

A. java 如何做一个客服聊天工具

如果做web的话,首先如果你是客户,你发送信息到服务器端,服务器端把你的信息保存到数据库中,其中这信息包含了你的目标对象的标识,也就是客服MM的工号之类的信息,然后客服MM这边是定时到这个信息表中抓取最新的几倏数据就行了。

B. 如何用Java写聊天软件

做界面肯定要swing 然后结合Socket编写网络程序 多个客户端的话 要启动线程来配置每个客户端

C. 用JAVA编写的简单的聊天工具程序及解释

控制台简单聊天工具
服务端的代码
import java.io.*;
import java.net.*;
import java.util.Scanner;

public class Server {

public static int PORT = 1007;
private ServerSocket server;
public Server() throws IOException {
server = new ServerSocket(PORT);
}
public static void main(String[] args) throws Exception {
System.out.println("--Server--");
Server server = new Server();
server.accept();
}

public void accept() throws IOException {
Socket client = server.accept();//等待客户端的连接
getInfo(client.getInputStream());//启动等待消息线程
toInfo(client.getOutputStream());//启动发送消息线程
}

//等待客户端发送消息
public void getInfo(InputStream in) throws IOException {
final Scanner sc = new Scanner(in);//获取客户端的输入流
new Thread() {
@Override
public void run() {
while(true) {
if(sc.hasNextLine()) {//如果客户端有发送消息过来
System.out.println("Client:" + sc.nextLine());//打印客户端的消息
}
}
}
}.start();
}

//发送消息到客户端
public void toInfo(OutputStream out) throws IOException {
final PrintWriter pw = new PrintWriter(out, true);//获取客户端的输出流,自动清空缓存的内容
final Scanner sc = new Scanner(System.in);//获取控制台的标准输入流,从控制台输入数据
new Thread() {
@Override
public void run() {
while(true) {
pw.println(sc.nextLine());//将输入的数据发送给客户端
}
}
}.start();
}
}

客户端的代码
import java.io.*;
import java.net.Socket;
import java.util.Scanner;

public class Client {

public static void main(String[] args) throws Exception, IOException {
System.out.println("--Client--");
Client client = new Client();
client.connection("localhost", Server.PORT);
}

public void connection(String host, int port) throws IOException {
Socket client = new Socket(host, port);
getInfo(client.getInputStream());
toInfo(client.getOutputStream());
}

public void getInfo(InputStream in) throws IOException {
final Scanner sc = new Scanner(in);
new Thread() {
@Override
public void run() {
while(true) {
if(sc.hasNextLine()) {
System.out.println("Server:" + sc.nextLine());
}
}
}
}.start();
}

public void toInfo(OutputStream out) throws IOException {
final PrintWriter pw = new PrintWriter(out, true);
final Scanner sc = new Scanner(System.in);
new Thread() {
@Override
public void run() {
while(true) {
pw.println(sc.nextLine());
}
}
}.start();
}
}

D. 怎么样用JAVA做个聊天软件

/**
* 基于UDP协议的聊天程序
*
* 2007.9.18
* */

//导入包
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.net.*;

public class Chat extends JFrame implements ActionListener
{
//广播地址或者对方的地址
public static final String sendIP = "127.0.0.1";
//发送端口9527
public static final int sendPort = 8000;

JPanel p = new JPanel();
List lst = new List(); //消息显示
JTextField txtIP = new JTextField(18); //填写IP地址
JTextField txtMSG = new JTextField(20); //填写发送消息
JLabel lblIP = new JLabel("IP地址:");
JLabel lblMSG = new JLabel("消息:");
JButton btnSend = new JButton("发送");

byte [] buf;

//定义DatagramSocket的对象必须进行异常处理
//发送和接收数据报包的套接字
DatagramSocket ds = null;

//=============构造函数=====================
public Chat()
{

CreateInterFace();
//注册消息框监听器
txtMSG.addActionListener(this);
btnSend.addActionListener(this);

try
{
//端口:9527
ds =new DatagramSocket(sendPort);
}
catch(Exception ex)
{

ex.printStackTrace();
}

//============接受消息============
//匿名类
new Thread(new Runnable()
{

public void run()
{
byte buf[] = new byte[1024];

//表示接受数据报包
while(true)
{
try
{
DatagramPacket dp = new DatagramPacket(buf,1024,InetAddress.getByName(txtIP.getText()),sendPort);
ds.receive(dp);
lst.add("【消息来自】◆" + dp.getAddress().getHostAddress() + "◆"+"【说】:" + new String (buf,0,dp.getLength()) /*+ dp.getPort()*/,0);
}
catch(Exception e)
{
if(ds.isClosed())
{
e.printStackTrace();
}
}
}
}
}).start();

//关闭窗体事件
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent w)
{
System.out.println("test");
int n=JOptionPane.showConfirmDialog(null,"是否要退出?","退出",JOptionPane.YES_NO_OPTION);
if(n==JOptionPane.YES_OPTION)
{
dispose();
System.exit(0);
ds.close();//关闭ds对象//关闭数据报套接字
}
}
});

}

//界面设计布局
public void CreateInterFace()
{
this.add(lst,BorderLayout.CENTER);
this.add(p,BorderLayout.SOUTH);
p.add(lblIP);
p.add(txtIP);
p.add(lblMSG);
p.add(txtMSG);
p.add(btnSend);
txtIP.setText(sendIP);
//背景颜色
lst.setBackground(Color.yellow);

//JAVA默认风格
this.setUndecorated(true);
this.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);

this.setSize(600,500);
this.setTitle("〓聊天室〓");
this.setResizable(false);//不能改变窗体大小
this.setLocationRelativeTo(null);//窗体居中
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.setVisible(true);
txtMSG.requestFocus();//消息框得到焦点
}

//===============================Main函数===============================

public static void main(String[]args)
{
new Chat();
}

//================================发送消息===============================
//消息框回车发送消息事件
public void actionPerformed(ActionEvent e)
{
//得到文本内容
buf = txtMSG.getText().getBytes();

//判断消息框是否为空
if (txtMSG.getText().length()==0)
{
JOptionPane.showMessageDialog(null,"发送消息不能为空","提示",JOptionPane.WARNING_MESSAGE);
}
else{
try
{
InetAddress address = InetAddress.getByName(sendIP);
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName(txtIP.getText()),sendPort);
ds.send(dp);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
txtMSG.setText("");//清空消息框

//点发送按钮发送消息事件
if(e.getSource()==btnSend)
{
buf = txtMSG.getText().getBytes();

try
{
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName(txtIP.getText()),sendPort);
}
catch(Exception ex)
{
ex.printStackTrace();
}

txtMSG.setText("");//清空消息框
txtMSG.requestFocus();
}

}

}

E. 用JAVA开发一个在线聊天系统需要哪些软件

你好,提问者:
开发Java的软件一般用eclipse或者idea就可以了。包括Java开发环境的搭建,jdk什么的。
主要掌握的技能应该有TCP通讯协议,客户端服务端的开发,还有多线程或线程池这些吧。
建议找视频,或者项目研究下代码。
如果解决了你的问题,请采纳,如有疑问,请提问。谢谢!

F. 怎么用JAVA做个聊天工具

先要做个登录界面, 再做聊天界面 ,服务器端, 再连数据库, 我这刚刚写过这个程序,
这只是一个登录了
import java.awt.* ;
import javax.swing.* ;
import java.awt.event.*;
import java.net.* ;

public class Login extends JFrame implements ActionListener {
JTextField t_username = new JTextField() ;
JPasswordField t_password = new JPasswordField() ;

Login() {
//设置窗体属性
this.setSize(250 , 150) ;
this.setTitle("QQ登录") ;

int width = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth() ;
int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight() ;

this.setLocation((width-250)/2,(height-150)/2) ;

//new一大堆组件
JLabel l_username = new JLabel("用户名") ;
JLabel l_password = new JLabel("密码") ;

JButton b_login = new JButton("登录") ;
JButton b_cancel = new JButton("取消") ;
JButton b_reg = new JButton("注册") ;

//注册事件监听
b_login.addActionListener(this) ;
b_cancel.addActionListener(this) ;
b_reg.addActionListener(this) ;

//布置输入面板
JPanel p_input = new JPanel() ;
p_input.setLayout(new GridLayout(2 ,2 )) ;

p_input.add(l_username) ;
p_input.add(t_username) ;

p_input.add(l_password) ;
p_input.add(t_password) ;

//布置按钮面板
JPanel p_button = new JPanel() ;
p_button.setLayout(new FlowLayout()) ;

p_button.add(b_login) ;
p_button.add(b_cancel) ;
p_button.add(b_reg) ;

//布置窗体
this.setLayout(new BorderLayout()) ;

this.add(p_input , BorderLayout.CENTER) ;
this.add(p_button , BorderLayout.SOUTH) ;
}
public static void main(String args[]){
Login w = new Login() ;
w.setVisible(true) ;
}

/**
* Method actionPerformed
*
*
* @param e
*
*/
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("登录")){
//将用户名和密码发送到服务器
try {
Socket s = new Socket("127.0.0.1" , 8000) ;

MyNet mn = new MyNet(s) ;

mn.sender(t_username.getText()+"%"+t_password.getText()) ;

//接收服务器发送来的确认信息
if(mn.receive().equals("ok")){
Main w = new Main(t_username.getText()) ;
w.setMyNet(mn) ;
w.setVisible(true) ;
this.setVisible(false) ;
}
}
catch (Exception ex) {
}
}
if(e.getActionCommand().equals("取消")){
System.exit(0) ;
}
if(e.getActionCommand().equals("注册")){
}
}
}

G. 求用java编写的聊天工具

这个只有源码,没有制作成软件,在电脑可以直接运行,功能简单,只有1,2项功能。如果想要完整的提交内容还是要花点钱的,毕竟这也是别人辛苦的脑力劳动。

H. 怎么用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之后再做,会有不一样的效果哦。祝您成功哟.呵呵

I. 谁知道有像米聊一样的聊天软件,是JAVA通用版本

目前还有爱悠悠和QQ通讯录支持发送语音和图片,具了解沃友也将推出通用的JAVA版本

J. JAVA编写的聊天工具

//以下引入包
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.applet.*;
public class regit extends JApplet implements ActionListener,ItemListener//接口
{
String s=null;
//对象的声明
JLabel labelname,labelpass,labelsxe,labeladdress,labelmail,labelphone;//标签
JTextField textname,textaddress,textmail,textphone;//文本框
JRadioButton r1,r2;//单选按纽
ButtonGroup bg;//组
JPasswordField textpass;//密码域
JButton buttonregit,buttonreset;//注册按纽 重写按纽
JPanel p;//面板
String sex;//定义性别字符串

URL url;//统一资源定位
BufferedWriter out1,out2;//流
BufferedReader in;

//布局方式
GridBagLayout gbl;
GridBagConstraints gc;
AppletContext co;//接口

//初始化
public void init()
{
//new 对象
labelname=new JLabel("用 户 名:");
labelpass=new JLabel("用户密码:");
labelsxe=new JLabel("性别:");
labeladdress=new JLabel("地址:");
labelmail=new JLabel("电子邮件:");
labelphone=new JLabel("联系电话:");

textname=new JTextField(15); textname.setForeground(Color.red);
textname.setToolTipText("请在这输入你的用户名");
textaddress=new JTextField(15);textaddress.setForeground(Color.red);
textaddress.setToolTipText("请在这输入你的地址");
textmail=new JTextField(15); textmail.setForeground(Color.red);
textmail.setToolTipText("请在这里输入你的E-mail地址");
textphone=new JTextField(15); textphone.setForeground(Color.red);
textphone.setToolTipText("请在这输入你的电话号码");

r1=new JRadioButton("男"); r1.setBackground(new Color(47,177,210));//设置颜色
r2=new JRadioButton("女"); r2.setBackground(new Color(47,177,210));//设置颜色
bg=new ButtonGroup();
bg.add(r1);bg.add(r2);//加入组,实现单选

textpass=new JPasswordField(15);
textpass.setToolTipText("在这里输入密码");
textpass.setForeground(Color.red);

buttonregit=new JButton("注册"); buttonregit.setBackground(new Color(47,177,210));//设置颜色
buttonregit.setToolTipText("点击按纽完成注册");
buttonreset=new JButton("填写"); buttonreset.setBackground(new Color(47,177,210));//设置颜色
buttonreset.setToolTipText("点击按纽刷新重写");

gbl=new GridBagLayout(); ///////////////////////////////////////
gc=new GridBagConstraints(); //////采用GridBagLayout布局方式////////

p=new JPanel();
p.setLayout(gbl);
p.setBackground(new Color(47,177,210));

this.getContentPane().add(p);//加入面板

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=2;
gc.gridy=2;
gbl.setConstraints(labelname,gc);
p.add(labelname);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=4;
gc.gridy=2;
gbl.setConstraints(textname,gc);
p.add(textname);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=2;
gc.gridy=4;
gbl.setConstraints(labelpass,gc);
p.add(labelpass);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=4;
gc.gridy=4;
gbl.setConstraints(textpass,gc);
p.add(textpass);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=2;
gc.gridy=6;
gbl.setConstraints(labelsxe,gc);
p.add(labelsxe);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=4;
gc.gridy=6;
gbl.setConstraints(r1,gc);
p.add(r1);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=5;
gc.gridy=6;
gbl.setConstraints(r2,gc);
p.add(r2);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=2;
gc.gridy=8;
gbl.setConstraints(labeladdress,gc);
p.add(labeladdress);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=4;
gc.gridy=8;
gbl.setConstraints(textaddress,gc);
p.add(textaddress);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=2;
gc.gridy=10;
gbl.setConstraints(labelmail,gc);
p.add(labelmail);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=4;
gc.gridy=10;
gbl.setConstraints(textmail,gc);
p.add(textmail);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=2;
gc.gridy=12;
gbl.setConstraints(labelphone,gc);
p.add(labelphone);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=4;
gc.gridy=12;
gbl.setConstraints(textphone,gc);
p.add(textphone);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=2;
gc.gridy=16;
gbl.setConstraints(buttonregit,gc);
p.add(buttonregit);

gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=4;
gc.gridy=16;
gbl.setConstraints(buttonreset,gc);
p.add(buttonreset);

/////////////////////////////////////////////
co=this.getAppletContext();
/////////////////////////////////////////////
buttonregit.addActionListener(this);//按纽事件的监听
buttonreset.addActionListener(this);//按纽事件的监听
r1.addItemListener(this);//选择事件的监听
r2.addItemListener(this);//选择事件的监听
textphone.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
//注册按纽事件
if(e.getSource()==buttonregit)
{
String s1=textname.getText(); ////////////////////
String s2=new String(textpass.getPassword());////////////////////
String s3=textaddress.getText(); // 定义字符串 //
String s4=textmail.getText(); ////////////////////
String s5=textphone.getText(); ////////////////////
//判断注册资料 信息 是否为空
if(s1.length()==0 || s2.length()==0 ||s3.length()==0 ||s4.length()==0 ||s5.length()==0)
{
int error=JOptionPane.INFORMATION_MESSAGE;
JOptionPane.showMessageDialog(null,"资料不能为空,请重新注册!","【温馨提示】",error);
return;//弹出对话框并返回
}

try//写入到txt文件
{
in=new BufferedReader(new FileReader("d:\\迷离视线聊天室\\password.txt"));
}
catch(Exception ee){}
String ss=s1;
try
{
while((s=in.readLine())!=null)
{
if(s.startsWith(ss))
{
JOptionPane.showMessageDialog(null,"用户名已经存在,请更换名字!");
textname.setText("");//设置为空,重新输入
textpass.setText("");
textaddress.setText("");
textmail.setText("");
textphone.setText("");
return;
}
}
}
catch(Exception ee){}
///////////////////////////以上代码判断是否有同名

{
try
{
out1=new BufferedWriter(new FileWriter("d:\\迷离视线聊天室\\password.txt",true));
out2=new BufferedWriter(new FileWriter("d:\\迷离视线聊天室\\message.txt",true));
}//创建文件
catch(Exception ee)
{}

try
{
out1.write(s1+"#"+s2);//写
out1.newLine();
out2.write("用户名:"+s1);
out2.newLine();
out2.write("密码:"+s2);
out2.newLine();
out2.write("性别:"+sex);
out2.newLine();
out2.write("地址:"+s3);
out2.newLine();
out2.write("电子邮件:"+s4);
out2.newLine();
out2.write("电话:"+s5);
out2.newLine();
out1.flush();
out2.flush();//清理缓冲
out1.close();
out2.close();
}
catch(Exception ee)
{}
JOptionPane.showMessageDialog(null,"注册成功!");
try
{
String qss="http://localhost/chatroom/chatjiemian.htm";
url=new url(/qss);//连接上网址
co.showDocument(url);
}
catch(Exception exx)
{}
}

}
//////////////////////以下为回车事件
if(e.getSource()==textphone)
{
String s1=textname.getText(); ////////////////////
String s2=new String(textpass.getPassword());////////////////////
String s3=textaddress.getText(); // 定义字符串 //
String s4=textmail.getText(); ////////////////////
String s5=textphone.getText(); ////////////////////
//判断注册资料 信息 是否为空
if(s1.length()==0 || s2.length()==0 ||s3.length()==0 ||s4.length()==0 ||s5.length()==0)
{
int error=JOptionPane.INFORMATION_MESSAGE;
JOptionPane.showMessageDialog(null,"资料不能为空,请重新注册!","【温馨提示】",error);
return;//弹出对话框并返回
}

try//写入到txt文件
{
in=new BufferedReader(new FileReader("d:\\迷离视线聊天室\\password.txt"));
}
catch(Exception ee){}
String ss=s1;
try
{
while((s=in.readLine())!=null)
{
if(s.startsWith(ss))
{
JOptionPane.showMessageDialog(null,"用户名已经存在,请更换名字!");
textname.setText("");//设置为空,重新输入
textpass.setText("");
textaddress.setText("");
textmail.setText("");
textphone.setText("");
return;
}
}
}
catch(Exception ee){}
///////////////////////////以上代码判断是否有同名

{
try
{
out1=new BufferedWriter(new FileWriter("d:\\迷离视线聊天室\\password.txt",true));
out2=new BufferedWriter(new FileWriter("d:\\迷离视线聊天室\\message.txt",true));
}//创建文件
catch(Exception ee)
{}

try
{
out1.write(s1+"#"+s2);//写
out1.newLine();
out2.write("用户名:"+s1+"密码:"+s2+"性别:"+sex+"地址:"+s3+"电子邮件:"+s4+"电话:"+s5);//写
out2.newLine();
out1.flush();
out2.flush();//清理缓冲
out1.close();
out2.close();
}
catch(Exception ee)
{}
JOptionPane.showMessageDialog(null,"注册成功!");
try
{
String qss="http://localhost/chatroom/chatjiemian.htm";
url=new url(/qss);//连接上网址
co.showDocument(url);
}
catch(Exception exx)
{}
}

}
if(e.getSource()==buttonreset)//刷新重写事件
{
textname.setText("");
textpass.setText("");
textaddress.setText("");
textmail.setText("");
textphone.setText("");
}

}
//////////////////////////////////////////
//
public void itemStateChanged(ItemEvent ex)
{
if(ex.getSource()==r1)
{
sex=new String("男");
}
else if(ex.getSource()==r2)
{
sex=new String("女");
}
}
}

热点内容
我的世界网易版服务器游戏 发布:2024-05-08 01:10:33 浏览:39
csgo中的存储库的功能 发布:2024-05-08 01:05:27 浏览:276
php旅游网站系统 发布:2024-05-07 20:27:32 浏览:611
jdk源码怎么看 发布:2024-05-07 20:18:22 浏览:520
编程c语言自学书 发布:2024-05-07 20:12:03 浏览:423
usb大容量存储驱动 发布:2024-05-07 19:02:01 浏览:816
红米1s没有存储空间 发布:2024-05-07 18:59:09 浏览:506
妖云解压密码 发布:2024-05-07 18:50:08 浏览:1003
sql语句等于怎么写 发布:2024-05-07 18:05:46 浏览:817
我的世界电脑版第三方服务器大全 发布:2024-05-07 18:00:46 浏览:628