㈠ 為java聊天室代碼加詳細注釋,並說明設計思路。好的加100分。
import java.io.*;
import java.net.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;//引入包。
public class ChatClient {
public static void main(String[] args) {
ChatClient cc = new ChatClient();
cc.receive();
}
JTextField jtf; // 文本條
JTextArea jta; //文本域。
Socket s; //客戶端
PrintWriter out; //輸出流
BufferedReader in; //輸入流
public ChatClient() {
JFrame frame = new JFrame("ChatClient");//窗口
frame.setSize(400, 300); //大小
jta = new JTextArea(); //文本域
jta.setEditable(false); //不可編輯
jtf = new JTextField();//文件條
jtf.addActionListener(new ActionListener() { //添加監聽。
public void actionPerformed(ActionEvent arg0) {
send(); //調用send()方法
}
});
frame.getContentPane().add(new JScrollPane(jta)); //添加滾動條
frame.getContentPane().add(jtf, "South"); //添加文本條
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口。
frame.setVisible(true); //可顯示的。
try {
s = new Socket("127.0.0.1", 9000); //連接服務端 socket("主機名",埠號);
in = new BufferedReader(new InputStreamReader(s.getInputStream())); //建立輸入流
out = new PrintWriter(s.getOutputStream());//輸出流
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void receive() { //接受服務端發來別的客戶端的信息。
while (true) {
try {
String text = in.readLine(); //讀一行
this.jta.append(text + "\n"); //jta 添加上讀入的。
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}
}
}
public void send() { //發送消息
String text = this.jtf.getText(); //得到你輸入的消息
this.jtf.setText(""); //在文本域中顯示你輸入的消息。
out.println(text); //列印出。
out.flush(); //清空
}
}
Server端
import java.net.*;
import java.io.*;
import java.util.*;//引入包
public class ChatServer {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(9000); //建立服務端,埠號為9000
List list = new ArrayList(); //創建個List集合。
while (true) {
Socket s = ss.accept(); //等待客戶端的請求。
list.add(s); //把每一個client都add到集合中去。
Thread t = new ServerThread(s, list); //線程。
t.start(); //啟動。
}
}
}
class ServerThread extends Thread {
Socket s;
List list;
BufferedReader in;
PrintWriter out;
public ServerThread(Socket s, List list) { //構造。傳入socket和list。
this.s = s;
this.list = list;
try {
in = new BufferedReader(new InputStreamReader(s.getInputStream())); //輸入流
out = new PrintWriter(s.getOutputStream()); //輸出流
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void run() { //必須實現其run()方法。
while (true) {
try {
String str = in.readLine(); //得到client端的message。
if (str == null) //如果沒有消息就返回。
return;
Iterator it = list.iterator(); //遍歷list。
while (it.hasNext()) { //如果list有下一個
Socket socket = (Socket) (it.next()); //因為list中都是存的socket
PrintWriter o = new PrintWriter(socket.getOutputStream()); //輸出流
o.println(str); //輸出
o.flush(); //清空
}
} catch (IOException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
return;
}
}
}
}
㈡ 用java設計網頁聊天室,要實現那些功能呢
首先是登錄,然後顯示聊天室窗體,窗體上有在線人員,然後實現聊天功能,當然是AJAX技術實現的,也可以擴展比如說添加不同字體、添加頭像等
㈢ Java實現一個網路聊天室 可以用什麼設計架構怎麼設計
那看你用什麼寫了。如果B/S方式的話,簡單點struts配上ajax就可以了。C/S方式的話,網上找幾個例子,看看tcp連接怎麼建立,線程怎麼使用,swing怎麼用
㈣ Java聊天室該怎麼設計
看cs還是bs模式的了,如果是bs就很簡單了,每次提交留言,然後放在公共變數中,每隔幾秒就重新刷新一次,把公共變數中的信息刷出來。這個有很多種變形,比如ajax實現不刷新的更新,或者http長連接實現伺服器推數據。
cs的畫,自己寫的話,就socket了,就是控制起來太復雜了。
比較推薦用線程的協議,比如xmpp什麼的,有很多嵌入式的伺服器可以用阿,主要是jabber協議的。。。
如果自己寫的話,也沒有比較從socket開始寫,我以前一個人寫過,簡直就是折磨人的麻煩,可以用rmi、webservice什麼的,主要是在數據封裝和控制信息上能簡化一些~~~~~
注意使用oo思想哈~比如所有信息都封裝為一個對象,直接通過objectstream讀寫,然後通過反射,判斷是控制信息還是即時消息。。。
㈤ 如何用Java編寫一個聊天室程序,可以支持單聊和多聊
聊天程序又叫即時通訊系統
分類兩部分:客戶端和服務端
客戶端:用戶聊天的界面
服務端:接收消息並轉發到指定用戶
其中服務端和客戶端用tcp或者udp連接,使用socket編程完成通信。
按著這個思路可以開發出一套聊天程序
客戶端常用界面 bs版本的又layim
服務端 openfire或者自己實現
㈥ 怎麼用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之後再做,會有不一樣的效果哦。祝您成功喲.呵呵
㈦ java語音聊天室怎樣實現啊
實現java語音聊天室的方法很簡單,要麼自己從零研發,要麼直接使用別人的成品,意思是找網上的第三方,他們自己有研發產品的。建議考慮ZEGO即構科技,他們的語聊房SDK很好用的,提供低延遲和低成本的方案供選擇,在保障語音質量的前提下,碼率最低可到8kbps,可以試試。
㈧ Java實現一個網路聊天室 可以用什麼設計架構怎麼設計
那看你用什麼寫了。如果B/S方式的話,簡單點struts配上ajax就可以了。C/S方式的話,網上找幾個例子,看看tcp連接怎麼建立,線程怎麼使用,swing怎麼用
㈨ 利用JavaWeb設計簡易聊天室,具體要求看補充
利用JavaWeb設計簡易聊天室
這樣你什麼柑橘
比較
㈩ 用Java製作一個簡單的聊天室
正好我一本書上有這個程序的代碼,發給你好了。程序很簡單,一看就明白。前兩天我還用它裡面的方法做了一個遠程監控程序。如果你有一定java基礎,即使你以前沒聽說過socket,也能在一兩小時內參透它。