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

📄 chattookit.java

📁 java局域网聊天室
💻 JAVA
字号:
package chatnew;
import java.util.*;
import java.net.*;
import java.io.PrintStream;
import java.io.IOException;
import java.awt.List;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class ChatTookit {
    //从IP地址——昵称对照hashtabel中得到所有的昵称
    public static String getAllNickname(Hashtable ip2nickname){
        String allNickname="NICKNAME:";
        Enumeration e=ip2nickname.elements();
        while(e.hasMoreElements()){
            allNickname+=(String)e.nextElement()+" ";
        }
        return allNickname;
    }
    //遍历所有已连接的客户端,发送输入的信息
    public static void sendInfoToAll(ArrayList onLineUsers,String info) throws
            IOException {
        for (int i = 0; i < onLineUsers.size(); i++) {
            Socket c = (Socket) onLineUsers.get(i);
            PrintStream ps = new PrintStream(c.getOutputStream());
            ps.println(info);
        }
    }
    //给某个特定用户发送一条信息
    public static void sendInfo(Socket client,String info) throws IOException {
        PrintStream ps = new PrintStream(client.getOutputStream());
        ps.println(info);
    }
    //从socket中得到用户的ip地址
    public static String getIP(Socket socket){
        return socket.getInetAddress().getHostAddress();
    }
    //从一个hashtable中根据value得到key
    public static String getIP(Hashtable ip2nickname,String nickname){
        String ip=null;
        if(nickname.indexOf("@")>0){
            nickname=nickname.substring(0,nickname.indexOf("@"));
            System.out.println(nickname);
        }
        Enumeration e=ip2nickname.keys();
        while(e.hasMoreElements()){
            ip=(String)e.nextElement();
            if(((String)ip2nickname.get(ip)).equals(nickname)){
                break;
            }
        }
        return ip;
    }
    //从socket和IP地址——昵称对照hashtable中得到用户的昵称
    public static String getNickname(Socket socket,Hashtable ip2nickname){
        return (String)ip2nickname.get(getIP(socket));
    }
    //将在线用户列表的显示清空,并用最新的用户列表更新
    //客户端的:第二个参数是字符串,只显示昵称
    public static void updateOnLineUsersList(List onLineUsersList,String allNickname){
        onLineUsersList.removeAll();
        StringTokenizer st = new StringTokenizer(allNickname);
        while (st.hasMoreTokens()) {
            onLineUsersList.add(st.nextToken());
        }
    }
    //服务器端的:第二个参数是hashtable,显示的是ip:昵称
    public static void updateOnLineUsersList(List onLineUsersList,Hashtable ip2nickname){
        onLineUsersList.removeAll();
        Enumeration e=ip2nickname.keys();
        while(e.hasMoreElements()){
            String ip=(String)e.nextElement();
            onLineUsersList.add((String)ip2nickname.get(ip)+"@"+ip);
        }
    }
    //根据用户ip地址得到该用户所在的socket
    public static Socket getSocketByIP(ArrayList onLineUsers,String ip){
        Socket client=null;
        for(int i=0;i<onLineUsers.size();i++){
            client=(Socket)onLineUsers.get(i);
            if(getIP(client).equals(ip)){
                break;
            }
        }
        return client;
    }
    //根据用户ip地址得到该用户所在的service
    public static Service getServiceByIP(ArrayList allService,String ip){
        Service service=null;
        for(int i=0;i<allService.size();i++){
            service=(Service)allService.get(i);
            if(service.getIP().equals(ip)){
                break;
            }
        }
        return service;
    }
}

⌨️ 快捷键说明

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