当前位置:首页 » 编程语言 » 在线聊天java

在线聊天java

发布时间: 2022-08-01 07:30:06

㈠ 用java开发一个在线聊天系统需要哪些软件

开发Java的软件一般用eclipse或者idea就可以了。包括Java开发环境的搭建,jdk什么的。
主要掌握的技能应该有TCP通讯协议,客户端服务端的开发,还有多线程或线程池这些吧。

㈡ 想用Java web实现在线聊天,求大神指点。

这个只有通过客户端向服务器主动请求的方式实现,因为http协议是无状态的一次请求结束之后,服务器就没法再找到客户端的浏览器了,所以只能是客户端定期到服务器查询有无新消息。消息页面的弹出可以使用js实现。打开多个相同页面可能会同时都弹出吧,这个我不太清楚,不过一般很少有人会去开多个页面吧。至于服务器压力的问题,我觉得应该不是什么大问题,因为每次请求的数据量也不是很大,你可以将请求时间间隔设置的长一点。希望我的回答能对你有帮助。

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

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

㈣ 如何使用Java实现网站页面在线聊天

那种timeout不断去查询这种方法,就将之前堵塞的线程解锁,思路应该是下面这种。。,同时再次传递信息给服务器,服务器就会主动将信息推送给客户端,所以让线程堵塞,具体的我有代码,onload事件激发自动传送一个指令给服务器,直到有客户端向服...

㈤ java编程。在线聊天系统

你问的这许多问题可以看出你的基础知识并不扎实,建议还是先把基础知识搞扎实一点。好好练一下java的网络连接和多线程,多练小题目,别一开始做大项目。基础知识扎实的时候不用问自己就知道了。
在线聊天是大项目,先放一放吧。

㈥ 用Java,用什么实现在线聊天

可以试试TCP,Socket

㈦ 使用java+js如何实现网页在线聊天功能

聊天用到的问题其实就是websocket的频道订阅机制,这里需要用到单人聊天就是相互订阅对方的频道然后进行消息推送。

㈧ Java在线聊天的实现技术

socket套接字

㈨ 用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 = "172.18.8.255";
//发送端口9527
public static final int sendPort = 9527;

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();
}

}

}

㈩ javaEE在web页面实现在线聊天功能。

刚好我们前几天做过这种实时的WEB在线聊天,那种timeout不断去查询这种方法,太耗流量且浪费资源,简单的来说,思路应该是下面这种:
在jsp页面加载时,onload事件激发自动传送一个指令给服务器,告诉服务器我需要获得数据,由于第一次加载时,肯定是没有数据,所以让线程堵塞,不继续执行,然后你如果在jsp页面发送了一个消息,同时发送一个信息给服务器,告诉服务器我发送了消息,服务器得到你的信息后,就将之前堵塞的线程解锁,将消息传递回去,然后客户端拿到消息后,将消息显示出来,同时再次传递信息给服务器:我需要获得数据,由于这时没有数据,线程继续堵塞,直到有客户端向服务器发送信息:我已经发送了信息,服务器接收到消息,再将线程解锁,将消息传递给客户端,同时再次传递信息给服务器:我需要获得数据。。。。。就这样循环起来,只要有人发送信息,服务器就会主动将信息推送给客户端。。。
这个东西是刚好上周我们老师讲的服务器在线推送信息,具体的我有代码,如果需要可以私信我

热点内容
安卓手机锁了怎么开 发布:2025-01-23 17:21:18 浏览:136
经济学算法 发布:2025-01-23 17:13:46 浏览:420
如何和软件联系服务器 发布:2025-01-23 17:13:00 浏览:799
javacrc16算法 发布:2025-01-23 17:11:31 浏览:224
编程加图片 发布:2025-01-23 17:10:33 浏览:566
中国风网站源码 发布:2025-01-23 17:05:56 浏览:679
pythonfilter用法 发布:2025-01-23 17:04:26 浏览:568
java转number 发布:2025-01-23 16:58:11 浏览:476
解压的英语作文 发布:2025-01-23 16:45:05 浏览:969
湖南首选dns服务器地址 发布:2025-01-23 16:06:39 浏览:874