欢迎来到天天文库
浏览记录
ID:34723873
大小:347.68 KB
页数:16页
时间:2019-03-10
《java聊天室源码(二代)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JAVA聊天室(二代)代码仅为原来的一半!性能进一步提升,性能允许的基础上可连接无数客户端,改进了下线CPU占有暴增情况,实现指定人员聊天功能。。来源:管天阳的日志登录桌面登录后用户列表可以显示可指定人员单独聊天上线客户端提醒退出时列表可显示,每个客户端的用户项也将消失。。下面是代码:1.服务器:packagecom.zzk;importjava.awt.BorderLayout;importjava.awt.Frame;importjava.awt.Image;importjava.awt.MenuItem;importjava.awt.
2、PopupMenu;importjava.awt.SystemTray;importjava.awt.TrayIcon;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjava
3、.io.IOException;importjava.io.ObjectInputStream;importjava.io.PrintWriter;importjava.net.ServerSocket;importjava.net.Socket;importjava.net.URL;importjava.util.Hashtable;importjava.util.Iterator;importjava.util.Set;importjava.util.Vector;importjavax.swing.ImageIcon;importja
4、vax.swing.JFrame;importjavax.swing.JScrollPane;importjavax.swing.JTextArea;publicclassChatServerFrameextendsJFrame{privateJTextAreata_info;privateServerSocketserver;//声明ServerSocket对象privateSocketsocket;//声明Socket对象socketprivateHashtablemap=newHashtable5、ng,Socket>();//用于存储连接到服务器的用户和客户端套接字对象publicvoidcreateSocket(){try{server=newServerSocket(1982);//创建服务器套接字对象while(true){ta_info.append("等待新客户连接......");socket=server.accept();//获得套接字对象ta_info.append("客户端连接成功。"+socket+"");newServerThread(socket).start();//创建并启动线程对象}}catc6、h(IOExceptione){e.printStackTrace();}}classServerThreadextendsThread{Socketsocket;publicServerThread(Socketsocket){this.socket=socket;}publicvoidrun(){try{ObjectInputStreamins=newObjectInputStream(socket.getInputStream());while(true){Vectorv=null;try{v=(Vector)ins.readObje7、ct();}catch(ClassNotFoundExceptione){e.printStackTrace();}if(v!=null&&v.size()>0){for(inti=0;i8、Setset=map.keySet();//获得集合中所有键的Set视图IteratorkeyIt=set.iterator();//获得所有键的
5、ng,Socket>();//用于存储连接到服务器的用户和客户端套接字对象publicvoidcreateSocket(){try{server=newServerSocket(1982);//创建服务器套接字对象while(true){ta_info.append("等待新客户连接......");socket=server.accept();//获得套接字对象ta_info.append("客户端连接成功。"+socket+"");newServerThread(socket).start();//创建并启动线程对象}}catc
6、h(IOExceptione){e.printStackTrace();}}classServerThreadextendsThread{Socketsocket;publicServerThread(Socketsocket){this.socket=socket;}publicvoidrun(){try{ObjectInputStreamins=newObjectInputStream(socket.getInputStream());while(true){Vectorv=null;try{v=(Vector)ins.readObje
7、ct();}catch(ClassNotFoundExceptione){e.printStackTrace();}if(v!=null&&v.size()>0){for(inti=0;i8、Setset=map.keySet();//获得集合中所有键的Set视图IteratorkeyIt=set.iterator();//获得所有键的
8、Setset=map.keySet();//获得集合中所有键的Set视图IteratorkeyIt=set.iterator();//获得所有键的
此文档下载收益归作者所有