client_thread.java.svn-base
上传用户:hongdaled
上传日期:2007-10-03
资源大小:680k
文件大小:1k
源码类别:

ICQ/即时通讯

开发平台:

Java

  1. package server;
  2. import java.io.DataInputStream;
  3. import java.io.DataOutputStream;
  4. import java.io.IOException;
  5. import java.io.ObjectInputStream;
  6. import java.io.ObjectOutputStream;
  7. import java.util.ArrayList;
  8. import java.util.Date;
  9. import java.util.HashMap;
  10. public class client_thread extends Thread{
  11. ObjectOutputStream dos; 
  12. //去往客户的输出流   
  13. ObjectInputStream din; 
  14. //来自客户的输入流   
  15. HashMap set=new HashMap();
  16. public client_thread(ObjectOutputStream dos, ObjectInputStream din)
  17. {    
  18. this.dos=dos; 
  19. this.din=din; 
  20. }
  21. public void run() {
  22. //循环读取客户数据转发给其他客户  
  23. while(true) {    
  24. try{
  25. Object message=din.readObject();  
  26. qq_user user =(qq_user)message;
  27. set.put(user.name, user);
  28. while(message!=null){
  29.     message=din.readObject();
  30. //读客户数据,无数据时线程将挂起    
  31.    user =(qq_user)message;
  32. set.put(user.name, user);
  33.     
  34. }
  35.   
  36.  for(int j=0;j<serverthread.l.size();j++)  {     
  37. client_thread c=(client_thread)serverthread.l.get(j);
  38. c.dos.writeObject(set); 
  39. //转发给其他客户  
  40.  this.sleep(1000);
  41.  
  42.        } 
  43. catch(IOException e)
  44. {
  45. } catch (ClassNotFoundException e) {
  46. // TODO Auto-generated catch block
  47. e.printStackTrace();
  48. } catch (InterruptedException e) {
  49. // TODO Auto-generated catch block
  50. e.printStackTrace();
  51. }  
  52. }
  53. }