资源简介
java实现的聊天系统,有操作界面,易操作
代码片段和文件信息
//客户端程序
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;
//此类用来处理和服务器的连接
public class ChatClient {
private boolean connected;//是否连接标志
int serverSocketNumber;//连接数目
String serverAddress;//服务器地址
private Socket socket;//端口号
String Name;//机器名
private int clientID;
objectOutputStream out;//输出流
objectInputStream in;//输入流
DefaultListModel clientList;
private InputListener listener;//监听端口
ClientInterface window;
//对进来的信息进行回应
class InputListener extends Thread {
//提供中断循环的方式
boolean running = false;
//实现线程类的run()方法处理发送过来的操作消息如聊天请求,用户列表更新等
public void run() {
//一直循环直到Listener停止
while( true ){
if( running ){
//测试信息类型并作出相应的反映
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 );
}
//当有成员退出
else {
window.notifyUserLeft( ((UpdateList)serverMsg).newClient );
clientList.removeElement(((UpdateList)serverMsg).newClient);
}
}
else if(serverMsg instanceof ServerShutDown) {
disconnectFromServer( false );//从服务器断开连接
window.notifyDisconnect();
JOptionPane.showMessageDialog( window
“Server Has Been Shut Down““Connection Error“JOptionPane.ERROR_MESSAGE );
}
else if(serverMsg instanceof KickedOutNotice){
disconnectFromServer( false );//从服务器断开连接
window.notifyDisconnect();//关闭窗口
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
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 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个文件信息
相关资源
- mysql-connector-java-5.1.7 jar包
- jsp+servlet+javabean学生信息管理系统
- java使用栈的真值表程序
- 基于java socket的机票预订程序
- AndroidRClassGenerator
- java简单文件管理系统源码
- 编程实现基于UDP的pingjava.
- java 会员管理系统
- Java实验之雷达图源程序
- java实现p2p通信
- 哲学家就餐:Java多线程图形版
- Java实现一个简单的数据库系统
- java-ssm框架项目代码自动化工具1.6.1
- 简单的JAVA 3D球编码
- Java信息科技管理人员面试题中国邮政
- Java写的为图片添加水印的软件含源代
- java发送ISO8583报文接口框架
- java中cos文件上传
- JAVA数据结构排序动态演示
- okhttp3(包含http-3.9.0.jar和okio1.13.0.ja
- Java中国象棋有悔棋功能
- 利用java多线程汉字打字练习程序
- java 多个实习报告
- java通过HTTP调用接口Get请求和Post请求
- 闹钟java源码
- 数据库管理系统java实现
- java实现DBMS
- 《Java程序设计教程》习题及参考答案
- JAVA外文翻译212329
- jsp java web在线订购系统
评论
共有 条评论