-
大小: 65KB文件類(lèi)型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-06-08
- 語(yǔ)言: Java
- 標(biāo)簽: java??聊天系統(tǒng)??
資源簡(jiǎn)介
java實(shí)現(xiàn)的聊天系統(tǒng),有操作界面,易操作

代碼片段和文件信息
//客戶(hù)端程序
package?chat;
import?java.io.*;
import?java.net.*;
import?javax.swing.*;
import?protocols.ChatRequest;
import?protocols.ConnectionNotice;
import?protocols.KickedOutNotice;
import?protocols.LogOut;
import?protocols.Message;
import?protocols.ServerShutDown;
import?protocols.UpdateList;
//此類(lèi)用來(lái)處理和服務(wù)器的連接
public?class?ChatClient?{
private?boolean?connected;//是否連接標(biāo)志
int?serverSocketNumber;//連接數(shù)目
String?serverAddress;//服務(wù)器地址
private?Socket?socket;//端口號(hào)
String?Name;//機(jī)器名
private?int?clientID;
objectOutputStream?out;//輸出流
objectInputStream?in;//輸入流
DefaultListModel?clientList;
private?InputListener?listener;//監(jiān)聽(tīng)端口
ClientInterface?window;
//對(duì)進(jìn)來(lái)的信息進(jìn)行回應(yīng)
class?InputListener?extends?Thread {
//提供中斷循環(huán)的方式
boolean?running?=?false;
//實(shí)現(xiàn)線(xiàn)程類(lèi)的run()方法處理發(fā)送過(guò)來(lái)的操作消息如聊天請(qǐng)求,用戶(hù)列表更新等
public?void?run()?{
//一直循環(huán)直到Listener停止
while(?true?){
if(?running?){
//測(cè)試信息類(lèi)型并作出相應(yīng)的反映
try {
object?serverMsg?=?in.readobject();
if(?serverMsg?instanceof?Message?){
window.showMessage((Message)serverMsg);
}
else?if(?serverMsg?instanceof?ChatRequest){
window.openNewTab(((ChatRequest)serverMsg).senderId?);
}
else?if(?serverMsg?instanceof?UpdateList?){
//如果有新的成員加入
if(((UpdateList)serverMsg).requestType?==?true){
clientList.addElement(?((UpdateList)serverMsg).newClient?);
}
//當(dāng)有成員退出
else?{
window.notifyUserLeft(?((UpdateList)serverMsg).newClient?);
????????????????????????????clientList.removeElement(((UpdateList)serverMsg).newClient);
}
}
else?if(serverMsg?instanceof?ServerShutDown)?{
disconnectFromServer(?false?);//從服務(wù)器斷開(kāi)連接
window.notifyDisconnect();
JOptionPane.showMessageDialog(?window
“Server?Has?Been?Shut?Down““Connection?Error“JOptionPane.ERROR_MESSAGE?);
}
else?if(serverMsg?instanceof?KickedOutNotice){
disconnectFromServer(?false?);//從服務(wù)器斷開(kāi)連接
window.notifyDisconnect();//關(guān)閉窗口
JOptionPane.showMessageDialog(?window
“Server?Kicked?You??Out““Connection?Error“JOptionPane.ERROR_MESSAGE?);
}
}
catch(ClassNotFoundException?cnfe){
JOptionPane.showMessageDialog(?window?
“Class?of?a?serialized??object?cannot?be?found.“?
“Termination?Error“?JOptionPane.ERROR_MESSAGE?);
shutDown();//退出程序
}
catch(?InvalidClassException?ice?){
JOptionPane.showMessageDialog(window?
“Something?is?wrong?with?a?class?used?by?“?+
“serialization.“?“Termination?Error“JOptionPane.ERROR_MESSAGE?);
shutDown();//退出程序
}
catch(?StreamCorruptedException?sce?){
JOptionPane.showMessageDialog(window
“Control?information?in?the?stream?is?“?+
“inconsistent.“?“Termination?Error“JOptionPane.ERROR_MESSAGE?);
shutDown();
}
catch(?OptionalDataException?ode?){
JOptionPane
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????0??2011-06-14?19:14??chatProgram\
?????文件?????????301??2011-06-14?18:56??chatProgram\.classpath
?????文件?????????387??2011-06-14?18:56??chatProgram\.project
?????目錄???????????0??2011-06-14?19:14??chatProgram\.settings\
?????文件?????????629??2011-06-14?18:56??chatProgram\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2011-06-14?19:14??chatProgram\bin\
?????目錄???????????0??2011-06-14?19:14??chatProgram\bin\chat\
?????文件????????2905??2011-06-14?18:56??chatProgram\bin\chat\ChatClient$InputListener.class
?????文件????????6276??2011-06-14?18:56??chatProgram\bin\chat\ChatClient.class
?????文件????????6040??2011-06-14?18:56??chatProgram\bin\chat\ChatServer$ChatHandler.class
?????文件????????4788??2011-06-14?18:56??chatProgram\bin\chat\ChatServer.class
?????文件????????1024??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$AboutHlpMenu.class
?????文件?????????702??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$CloseAllTabsMenu.class
?????文件????????1345??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$CloseTabButton.class
?????文件?????????832??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$ConfigureFMenu.class
?????文件?????????841??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$ConfigureServerInfo$CancelButton.class
?????文件????????1314??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$ConfigureServerInfo$SaveButton.class
?????文件????????2932??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$ConfigureServerInfo.class
?????文件????????2268??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$ConnectFMenu.class
?????文件?????????844??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$DisconnectFMenu.class
?????文件?????????769??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$ExitButton.class
?????文件?????????943??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$FocusMessageField.class
?????文件?????????651??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$HelpHlpMenu.class
?????文件?????????973??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$OnExit.class
?????文件????????1129??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$SelectClient.class
?????文件?????????799??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$SendButton.class
?????文件?????????686??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$SendMessage.class
?????文件?????????993??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface$WebHlpMenu.class
?????文件????????9399??2011-06-14?18:56??chatProgram\bin\chat\ClientInterface.class
?????文件?????????994??2011-06-14?18:56??chatProgram\bin\chat\ServerInterface$AboutHlpMenu.class
?????文件?????????802??2011-06-14?18:56??chatProgram\bin\chat\ServerInterface$clientSelected.class
............此處省略38個(gè)文件信息
評(píng)論
共有 條評(píng)論