启动多个客户端:
在 QQServer 中创建一个集合,存放多个用户,如果是这些用户登录,就认为是合法的
// 创建一个集合,存放多个用户,如果是这些用户登录,就认为是合法的
// HashMap 没有处理线程安全,因此在多线程下是不安全的
// ConcurrentHashMap 实现了同步处理,多线程下是安全的
// private static HashMap<String, User> validUsers = new HashMap<>();
private static ConcurrentHashMap<String, User> validUsers = new ConcurrentHashMap<>();
static {
validUsers.put("Gin", new User("Gin", "123"));
validUsers.put("Vodka", new User("Vodka", "123"));
validUsers.put("Sherry", new User("Sherry", "123"));
validUsers.put("Vermouth", new User("Vermouth", "123"));
validUsers.put("Rum", new User("Rum", "123"));
validUsers.put("Bourbon", new User("Bourbon", "123"));
}
// 验证用户是否合法
private boolean checkUser(String userId, String passwd){
User user = validUsers.get(userId);
// 用户 id 不存在
if(user == null){
return false;
}
// 用户 id 存在,密码错误
if(!user.getPasswd().equals(passwd)){
return false;
}
// id,密码都正确
return true;
}
启动服务端,再启动两个客户端进行验证