在线聊天java
㈠ 用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页面发送了一个消息,同时发送一个信息给服务器,告诉服务器我发送了消息,服务器得到你的信息后,就将之前堵塞的线程解锁,将消息传递回去,然后客户端拿到消息后,将消息显示出来,同时再次传递信息给服务器:我需要获得数据,由于这时没有数据,线程继续堵塞,直到有客户端向服务器发送信息:我已经发送了信息,服务器接收到消息,再将线程解锁,将消息传递给客户端,同时再次传递信息给服务器:我需要获得数据。。。。。就这样循环起来,只要有人发送信息,服务器就会主动将信息推送给客户端。。。
这个东西是刚好上周我们老师讲的服务器在线推送信息,具体的我有代码,如果需要可以私信我