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

📄 defaultservermodel.java

📁 java chat java chat简易聊天室程序源代码,有很高的参考价值,能在它的基础上进行2次开发.
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package chat.server;import chat.common.LoginMessage;import chat.common.LogoutMessage;import chat.common.Message;import chat.common.User;import java.io.IOException;import java.util.Collection;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Map;import java.util.logging.Level;import java.util.logging.Logger;/** * * @author Administrator */public class DefaultServerModel implements ServerModel {    private static DefaultServerModel model;    private Map<User, ServWorker> userMap;    public Map<User, ServWorker> getUserMap() {        return userMap;    }    public void setUserMap(Map<User, ServWorker> userMap) {        this.userMap = userMap;    }    private DefaultServerModel() {        userMap = new HashMap<User, ServWorker>();        System.out.println(userMap.keySet().getClass().getName());    }    public static DefaultServerModel getInstance() {        if (model == null) {            model = new DefaultServerModel();        }        return model;    }    public void addUserToList(User user, ServWorker worker) {        userMap.put(user, worker);    }    public void removeUserFromList(User user) {        userMap.remove(user);    }    public void sendMessageToUser(User user, Message message) {        try {            userMap.get(user).getOos().writeObject(message);            userMap.get(user).getOos().flush();        } catch (IOException ex) {            Logger.getLogger(DefaultServerModel.class.getName()).log(Level.SEVERE, null, ex);        }    }    public void sendMessageToUsers(Message message) {        for (User user : userMap.keySet()) {            sendMessageToUser(user, message);        }//        Iterator itor = userMap.keySet().iterator();//        while(itor.hasNext()){//            Object obj = itor.next();//            User user = (User)obj;//            sendMessageToUser(user, message);//        }    }    public void doLogin(LoginMessage message) {        //默认所有用户都可以登录        if (userMap.keySet().contains(message.getUser())) {            message.setStatus(LoginMessage.LOGIN_FAILED);            message.setMessage("用户名已存在!");        } else {            message.setStatus(LoginMessage.LOGIN_OK);            message.setMessage("登录成功");        }    }    public void doLogout(LogoutMessage message) {        message.setStatus(LogoutMessage.LOGOUT_OK);        message.setMessage("登出成功");    }    public void sendMessageToUsers(Collection<User> users, Message message) {        for (User user : users) {            sendMessageToUser(user, message);        }    }}

⌨️ 快捷键说明

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