在線聊天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頁面發送了一個消息,同時發送一個信息給伺服器,告訴伺服器我發送了消息,伺服器得到你的信息後,就將之前堵塞的線程解鎖,將消息傳遞回去,然後客戶端拿到消息後,將消息顯示出來,同時再次傳遞信息給伺服器:我需要獲得數據,由於這時沒有數據,線程繼續堵塞,直到有客戶端向伺服器發送信息:我已經發送了信息,伺服器接收到消息,再將線程解鎖,將消息傳遞給客戶端,同時再次傳遞信息給伺服器:我需要獲得數據。。。。。就這樣循環起來,只要有人發送信息,伺服器就會主動將信息推送給客戶端。。。
這個東西是剛好上周我們老師講的伺服器在線推送信息,具體的我有代碼,如果需要可以私信我