資源簡介
基于Java udp協議實現的圖形界面的多人聊天室
ps:客戶端登陸是輸入的用戶名只能是兩個字的姓名

代碼片段和文件信息
package?Chat;
import?java.awt.EventQueue;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.WindowEvent;
import?java.net.DatagramPacket;
import?java.net.DatagramSocket;
import?java.net.InetAddress;
import?java.util.Vector;
import?javax.swing.Jframe;
import?javax.swing.JTextArea;
import?javax.swing.JList;
import?javax.swing.JOptionPane;
import?javax.swing.JLabel;
import?javax.swing.JTextField;
import?javax.swing.JButton;
import?javax.swing.JScrollPane;
/**
?*?ChatClient實現網絡聊天室的客戶端,功能是用戶登陸后可以選擇聊天對象進行聊天,也可以接收服務端的廣播信息。
?*?@author?羅成東?201524132129
?*?Date:2018-6-9
?*?Copyright??2018lcd.AllRight?Reserved.
?*?@version?1.0
?*?@since?JDK1.8
?*/
public?class?ChatClient?extends?Jframe?implements?ActionListener?{
private?static?final?long?serialVersionUID?=?1L;
private?Jframe?frame;
private?JTextField?intputField?=?new?JTextField();
private?static?JTextArea?chatcontent?=?new?JTextArea();
private?JButton?btnsend?=?new?JButton(“發送“);
private?JButton?btnexit?=?new?JButton(“退出“);
//構造一個Vector用于存儲在線的用戶
private?static?Vector?v?=?new?Vector();
private?static?JList?user?=?new?JList(v);
//得到一個1000-9999的隨機數,用于客戶端的端口號。
static?int?port?=?(int)?(Math.random()?*?(9999?-?1000?+?1))?+?1000;
//用戶的姓名
String?username;
//標識發送登陸消息數據流的信息頭
private?static?String?load?=?“登陸“;
//標識發送聊天消息數據流的信息頭
private?static?String?message?=?“消息“;
//標識發送退出消息數據流的信息頭
private?static?String?exit?=?“退出“;
//標識發送私聊消息數據流的信息頭
private?static?String?special?=?“私聊“;
//接收登陸消息數據的開始標志
private?static?String?head?=?“head“;
//接收登陸信息數據的結束標志
private?static?String?tail?=?“tail“;
/**
?*?main方法的功能:應用程序的唯一入口
?*?@param?args?String命令行參數的數組
?*?@throws?Exception
?*/
public?static?void?main(String[]?args)?throws?Exception?{
EventQueue.invokeLater(new?Runnable()?{
public?void?run()?{
try?{
ChatClient?window?=?new?ChatClient();
window.frame.setVisible(true);
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
});
//接收客戶端發送的信息
DatagramSocket?ds?=?new?DatagramSocket(port);
receive(ds);
}
/**
?*?ChatClient方法的功能:類的構造函數
?*?@throws?Exception
?*/
public?ChatClient()?throws?Exception?{
username?=?JOptionPane.showInputDialog(“輸入用戶名:“);
initialize();
//把登陸到本客戶端的用戶名和本客戶端的端口號發送到服務端
Send((load?+?Integer.toString(port)?+?username).getBytes());
}
/**
?*?initialize方法的功能:應用程序的界面初始化和按鈕的監聽事件
?*/
private?void?initialize()?{
frame?=?new?Jframe();
frame.settitle(username);
frame.setBounds(100?100?850?400);
frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
frame.addWindowListener(new?java.awt.event.WindowAdapter()?{
@Override
public?void?windowClosing(WindowEvent?e)?{
try?{
exitsystem();
}?catch?(Exception?e1)?{
//?TODO?Auto-generated?catch?block
e1.printStackTrace();
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12788??2018-06-11?14:34??聊天室\程序jar包\ChatClient.jar
?????文件??????12788??2018-06-11?14:34??聊天室\程序jar包\ChatSever.jar
?????文件?????458932??2018-06-11?12:14??聊天室\程序截圖.docx
?????文件???????8380??2018-06-11?08:08??聊天室\程序源代碼\ChatClient.java
?????文件???????8924??2018-06-11?08:10??聊天室\程序源代碼\ChatServer.java
?????文件??????85749??2018-06-11?14:30??聊天室\說明文檔.docx
?????目錄??????????0??2018-06-11?14:36??聊天室\程序jar包
?????目錄??????????0??2018-06-11?11:23??聊天室\程序源代碼
?????目錄??????????0??2018-06-11?14:30??聊天室
-----------?---------??----------?-----??----
???????????????587561????????????????????9
評論
共有 條評論