⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 childrenthread.java

📁 这是我们课程设计的时候做的聊天程序
💻 JAVA
字号:
package server;

import java.io.*;
import java.awt.*;
import java.util.*;

import share.Message;

public class ChildrenThread extends Thread
{
    private ObjectInputStream ois;
    private ObjectOutputStream oos;
    Hashtable userList;
    String id;
    TextArea ta;


    public ChildrenThread(ObjectInputStream ois, ObjectOutputStream oos,
            Hashtable userList, String id, TextArea ta)
    {
        super();
        // TODO Auto-generated constructor stub
        // this.ois = ois;
        // this.oos = oos;
        this.ois = ois;
        this.oos = oos;
        this.userList = userList;
        this.id = id;
        this.ta = ta;
    }

    public void run()
    {
        // TODO Auto-generated method stub
        super.run();
        try
        {
            this.sendUserList();
            User toUser;
            while (true)
            {
                if (ois != null)
                {
                    System.out.println("at ChildrenThread 56 line.");
                    Message p = (Message) ois.readObject();
                    System.out.println("at ChildrenThread 59 line.");
                    String toID = p.getToID();
                    String fromID=p.getFromID();
                    String content=p.getContent();
                    if (userList.containsKey(toID))
                    {
                        toUser = (User) (userList.get(toID));
                       
                        toUser.getOos().writeObject(p);
                    }
                    else if(toID.equals("server"))
                    {
                        if(p.getContent().equals("refresh"))
                        {
                            this.sendUserList();
                        }
                        
                    }
                    else if(toID.equals("1000"))
                    {
                        for (Enumeration e = userList.elements(); e.hasMoreElements(); )
                        {
                            toUser= (User) e.nextElement();
                            System.out.println("==="+toUser.getId()+"===");
                            System.out.println("==="+fromID+"===");
                            if(toUser.getId().equals(fromID))
                            {
                                System.out.println("Children 71 line");
                                p.setToID(p.getFromID());
                                p.setFromID("server");
                                p.setDate(new Date());
                                p.setContent("Group send successful!");
                                this.oos.writeObject(p);
                                
                            }
                            else
                            {
                                System.out.println("Children 81 line");
                                p.setToID(toUser.getId());
                                p.setFromID(fromID);
                                p.setDate(new Date());
                                p.setContent(content);
                                toUser.getOos().writeObject(p);
                                
                            }
                            
                        }
                    }
                    else   
                    {
                        
                        p.setToID(p.getFromID());
                        p.setFromID("server");
                        p.setDate(new Date());
                        p.setContent("the clint who you try to send Message to isn't online!");
                        this.oos.writeObject(p);
                        
                    }

                }
            }

        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            // e.printStackTrace();
            this.close();

        }
        catch (ClassNotFoundException e)
        {
            // TODO Auto-generated catch block
            // e.printStackTrace();
            this.close();
        }

    }

    /**
     * @throws IOException
     */
    private void sendUserList() 
    {
        try
        {
            String[] user = new String[userList.size()];
            int i = 0;
            for (Enumeration e = userList.elements(); e.hasMoreElements(); i++)
            {
                User u = (User) e.nextElement();
                user[i] = u.getName() + "(" + u.getId() + ")";
            }
            oos.writeObject(user);
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }


    private void close()
    {
        try
        {
            if (ois != null)
            {
                ois.close();
                ois = null;
            }
            if (oos != null)
            {
                oos.close();
                oos = null;

            }
            if (userList.containsKey(id))
            {
                userList.remove(id);
                ta.append(new Date().toString()+":");
                ta.append("   Client " + id + " has shut dowm!\n");
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -