} }
catch(IOException e){} }
public void Enter()//登陆请求处理 {
try {
if(existName && existPassword) {
onlineNumber=\
toUserMessage.Command=\
toUserMessage.UserName=fromUserMessage.UserName;
toUserMessage.Message=\系统消息:大家欢迎\加入我们的欢乐聊天室!!!\
Server.vectorUserList.addElement(fromUserMessage.UserName);//加入用户到用户在线列表
toUserMessage.vectorUserList=Server.vectorUserList;
streamToUser.writeObject((User)toUserMessage);//返回用户在线列表和操作信息
streamToUser.flush();
Server.vectorStreamToUser.addElement(streamToUser);//存储该对象的输出流
jLabel5.setText(\共有:\个客户在线\服务器刷新
jList1.setListData(Server.vectorUserList); } else {
toUserMessage.Command=\
streamToUser.writeObject((User)toUserMessage);//返回操作信息
streamToUser.flush(); } }
catch(IOException e){} }
public void Leave()//离开请求处理 {
String name=fromUserMessage.UserName;
Server.vectorStreamToUser.removeElementAt(Server.vectorUserList.indexOf(name));
Server.vectorUserList.removeElement(name); onlineNumber=\ Updating(name);
第 20 页 共 69 页
20
}
public void Updating(String name)//群发新用户登陆通知,更新用户在线列表和对像框
{
try {
if(onlineNumber.equals(\ {
User toUserMessage=new User(); toUserMessage.Command=\ toUserMessage.UserName=name;
toUserMessage.Message=\系统消息:大家欢迎\加入我们的欢乐聊天室!!!\
for(int i=1;i ObjectOutputStream newUserStream; newUserStream=(ObjectOutputStream)Server.vectorStreamToUser.elementAt(i-1); newUserStream.writeObject((User)toUserMessage); newUserStream.flush(); } } if(onlineNumber.equalsIgnoreCase(\ { User toUserMessage=new User(); toUserMessage.Command=\ toUserMessage.UserName=name; toUserMessage.Message=\系统消息:\悄悄的走了!!!\ for(int i=0;i ObjectOutputStream newUserStream; newUserStream=(ObjectOutputStream)Server.vectorStreamToUser.elementAt(i); newUserStream.writeObject((User)toUserMessage); newUserStream.flush(); } } jLabel5.setText(\共有:\个客户在线\服务器刷新 jList1.setListData(Server.vectorUserList); onlineNumber=\ } catch(IOException e){} } public void Message()//聊天信息发送 { User toUserMessage=new User(); try { 第 21 页 共 69 页 21 toUserMessage.Command=\ toUserMessage.Message=fromUserMessage.Message; if(fromUserMessage.Command.equals(\ { for(int i=0;i if(!(fromUserMessage.UserName.equals(Server.vectorUserList.elementAt(i)))) { streamToUser=(ObjectOutputStream)Server.vectorStreamToUser.elementAt(i); streamToUser.writeObject((User)toUserMessage); streamToUser.flush(); } } } if(fromUserMessage.Command.equals(\ { for(int i=0;i if(fromUserMessage.UserName.equals(Server.vectorUserList.elementAt(i))) { streamToUser=(ObjectOutputStream)Server.vectorStreamToUser.elementAt(i); streamToUser.writeObject((User)toUserMessage); streamToUser.flush(); } } } } catch(IOException e){} } //文件传输信息---------------------------------- public void toSinkMessage() { try { streamToUser=(ObjectOutputStream)Server.vectorStreamToUser.elementAt(Server.vectorUserList.indexOf(fromUserMessage.SinkName)); streamToUser.writeObject(fromUserMessage); streamToUser.flush(); } catch(IOException e){} } public void toUserMessage() { try 第 22 页 共 69 页 22 { streamToUser=(ObjectOutputStream)Server.vectorStreamToUser.elementAt(Server.vectorUserList.indexOf(fromUserMessage.UserName)); streamToUser.writeObject(fromUserMessage); streamToUser.flush(); } catch(IOException e){} } } private void startMenuItemActionPerformed(ActionEvent evt) //启动事件 { new AppServer(); jLabel4.setText(\服务器状态:已启动\ } class AppServer extends Thread { public AppServer() { try { serverSocket = new ServerSocket(1001); //建立InetAddress对象 InetAddress intel=InetAddress.getLocalHost(); String SerName=intel.getHostName(); String SerIp=intel.getHostAddress(); System.out.println(\服务器名:\ System.out.println(\服务器IP:\ } catch(IOException e) { System.out.println(\ } System.out.println(\ this.start(); } public void run() { try { while(true) { Socket UserSocket = serverSocket.accept(); connection con = new connection(UserSocket); } } 第 23 页 共 69 页 23 catch(IOException e) { System.out.println(\ } } } private void stopMenuItemActionPerformed(ActionEvent evt) //停止事件 { jLabel4.setText(\服务器状态:即将关闭\ String Message=\各位用户请注意,服务器5秒钟后将关闭!敬请原谅!\ try { User toUserMessage=new User(); toUserMessage.Command=\ toUserMessage.Message=Message; for(int i=0;i ObjectOutputStream streamToUser=(ObjectOutputStream)Server.vectorStreamToUser.elementAt(i); streamToUser.writeObject((User)toUserMessage); streamToUser.flush(); } } catch(IOException e){} try { Thread.sleep(5000); } catch(InterruptedException e){} System.exit(0); } private void msgMenuItemActionPerformed(ActionEvent evt) //公告事件 { try { User toUserMessage=new User(); String Mesage=JOptionPane.showInputDialog(null,\请输入公告内容:\系统消息\ toUserMessage.Message=\系统消息:\ toUserMessage.Command=\ for(int i=0;i ObjectOutputStream streamToUser=(ObjectOutputStream)Server.vectorStreamToUser.elementAt(i); streamToUser.writeObject((User)toUserMessage); streamToUser.flush(); } } catch(IOException e){} 第 24 页 共 69 页 24 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Java聊天室系统程序设计实验报告 - 图文(5)在线全文阅读。
相关推荐: