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

熱點內容
mud源碼下載 發布:2025-01-23 21:19:46 瀏覽:134
反恐精英15游戲伺服器ip 發布:2025-01-23 21:13:38 瀏覽:850
起床的戰爭玩什麼伺服器 發布:2025-01-23 21:03:06 瀏覽:141
企業級安卓手機防毒軟體哪個好 發布:2025-01-23 20:59:28 瀏覽:243
資料庫精美 發布:2025-01-23 20:37:05 瀏覽:235
mysql怎麼編譯驅動 發布:2025-01-23 20:35:15 瀏覽:467
修改資料庫的語句是 發布:2025-01-23 20:26:17 瀏覽:762
linuxping域名 發布:2025-01-23 20:24:34 瀏覽:479
神經網路演算法應用 發布:2025-01-23 20:18:36 瀏覽:219
冒險島按鍵精靈腳本下載 發布:2025-01-23 19:46:50 瀏覽:751