📄 chattookit.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 + -