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

📄 utils.java

📁 用java实现的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	            return "QQ.QQ_CMD_GET_USER_INFO";
	        case QQ.QQ_CMD_ADD_FRIEND:
	            return "QQ.QQ_CMD_ADD_FRIEND";
	        case QQ.QQ_CMD_DELETE_FRIEND:
	            return "QQ.QQ_CMD_DELETE_FRIEND";
	        case QQ.QQ_CMD_ADD_FRIEND_AUTH:
	            return "QQ.QQ_CMD_ADD_FRIEND_AUTH";
	        case QQ.QQ_CMD_CHANGE_STATUS:
	            return "QQ.QQ_CMD_CHANGE_STATUS";
	        case QQ.QQ_CMD_ACK_SYS_MSG:
	            return "QQ.QQ_CMD_ACK_SYS_MSG";
	        case QQ.QQ_CMD_SEND_IM:
	            return "QQ.QQ_CMD_SEND_IM";
	        case QQ.QQ_CMD_RECV_IM:
	            return "QQ.QQ_CMD_RECV_IM";
	        case QQ.QQ_CMD_REMOVE_SELF:
	            return "QQ.QQ_CMD_REMOVE_SELF";
	        case QQ.QQ_CMD_LOGIN:
	            return "QQ.QQ_CMD_LOGIN";
	        case QQ.QQ_CMD_GET_FRIEND_LIST:
	            return "QQ.QQ_CMD_GET_FRIEND_LIST";
	        case QQ.QQ_CMD_GET_FRIEND_ONLINE:
	            return "QQ.QQ_CMD_GET_FRIEND_ONLINE";
	        case QQ.QQ_CMD_CLUSTER_CMD:
	            return "QQ.QQ_CMD_CLUSTER_CMD";
	        case QQ.QQ_CMD_RECV_MSG_SYS:
	            return "QQ.QQ_CMD_RECV_MSG_SYS";
	        case QQ.QQ_CMD_RECV_MSG_FRIEND_CHANGE_STATUS:
	            return "QQ.QQ_CMD_RECV_MSG_FRIEND_CHANGE_STATUS";
	        case QQ.QQ_CMD_REQUEST_KEY:
	            return "QQ_CMD_REQUEST_KEY";
	        case QQ.QQ_CMD_GROUP_NAME_OP:
	        	return "QQ_CMD_GROUP_NAME_OP";
	        case QQ.QQ_CMD_UPLOAD_GROUP_FRIEND:
	        	return "QQ_CMD_UPLOAD_GROUP_FRIEND";
	        case QQ.QQ_CMD_DOWNLOAD_GROUP_FRIEND:
	        	return "QQ_CMD_DOWNLOAD_GROUP_FRIEND";
	        case QQ.QQ_CMD_FRIEND_REMARK_OP:
	        	return "QQ_CMD_FRIEND_REMARK_OP";
	        default:
	            return "UNKNOWN_TYPE " + (int)cmd;
        }
    }
    
    /**
     * 得到群操作的字符串形式,仅用于调试
     * @param cmd
     * @return
     */
    public static String getClusterCommandString(byte cmd) {
    	  switch (cmd) {
    	    case QQ.QQ_CLUSTER_CMD_CREATE_CLUSTER:
    	    	return "QQ_CLUSTER_CMD_CREATE_CLUSTER";
    	    case QQ.QQ_CLUSTER_CMD_MEMBER_OPT:
    	    	return "QQ_CLUSTER_CMD_MEMBER_OPT";
    	    case QQ.QQ_CLUSTER_CMD_MODIFY_CLUSTER_INFO:
    	    	return "QQ_CLUSTER_CMD_MODIFY_CLUSTER_INFO";
    	    case QQ.QQ_CLUSTER_CMD_GET_CLUSTER_INFO:   
    	    	return "QQ_CLUSTER_CMD_GET_CLUSTER_INFO";
    	    case QQ.QQ_CLUSTER_CMD_ACTIVATE_CLUSTER:    
    	    	return "QQ_CLUSTER_CMD_ACTIVATE_CLUSTER";
    	    case QQ.QQ_CLUSTER_CMD_SEARCH_CLUSTER:     
    	    	return "QQ_CLUSTER_CMD_SEARCH_CLUSTER";
    	    case QQ.QQ_CLUSTER_CMD_JOIN_CLUSTER:        
    	    	return "QQ_CLUSTER_CMD_JOIN_CLUSTER";
    	    case QQ.QQ_CLUSTER_CMD_JOIN_CLUSTER_AUTH:   
    	    	return "QQ_CLUSTER_CMD_JOIN_CLUSTER_AUTH";
    	    case QQ.QQ_CLUSTER_CMD_EXIT_CLUSTER:        
    	    	return "QQ_CLUSTER_CMD_EXIT_CLUSTER";
    	    case QQ.QQ_CLUSTER_CMD_SEND_IM:          
    	    	return "QQ_CLUSTER_CMD_SEND_IM";
    	    case QQ.QQ_CLUSTER_CMD_GET_ONLINE_MEMBER: 
    	    	return "QQ_CLUSTER_CMD_GET_ONLINE_MEMBER";
    	    case QQ.QQ_CLUSTER_CMD_GET_MEMBER_INFO:  
    	    	return "QQ_CLUSTER_CMD_GET_MEMBER_INFO";
    	    default:                             
    	    	return "Unknown QQ Group Command";
    	  }
    }
    
    /**
     * 返回文件命令的字符串形式,仅用作调试
     * @param command
     * @return
     */
    public static String getFileCommandString(char command) {
    	switch(command) {
    	    case QQ.QQ_FILE_CMD_HEART_BEAT:
    	        return "QQ_FILE_CMD_HEART_BEAT";
    	    case QQ.QQ_FILE_CMD_HEART_BEAT_ACK:
    	        return "QQ_FILE_CMD_HEART_BEAT_ACK";
    	    case QQ.QQ_FILE_CMD_TRANSFER_FINISHED:
    	        return "QQ_FILE_CMD_TRANSFER_FINISHED";
    	    case QQ.QQ_FILE_CMD_FILE_OP:
    	        return "QQ_FILE_CMD_FILE_OP";
    	    case QQ.QQ_FILE_CMD_FILE_OP_ACK:
    	        return "QQ_FILE_CMD_FILE_OP_ACK";
    		case QQ.QQ_FILE_CMD_SENDER_SAY_HELLO:
    			return "QQ_FILE_CMD_SENDER_SAY_HELLO";    	
    		case QQ.QQ_FILE_CMD_SENDER_SAY_HELLO_ACK:
    		    return "QQ_FILE_CMD_SENDER_SAY_HELLO_ACK";
    		case QQ.QQ_FILE_CMD_RECEIVER_SAY_HELLO:
    			return "QQ_FILE_CMD_RECEIVER_SAY_HELLO";    		
    		case QQ.QQ_FILE_CMD_RECEIVER_SAY_HELLO_ACK:
    			return "QQ_FILE_CMD_RECEIVER_SAY_HELLO_ACK";    		
    		case QQ.QQ_FILE_CMD_NOTIFY_IP_ACK:
    			return "QQ_FILE_CMD_NOTIFY_IP_ACK";    		
    		case QQ.QQ_FILE_CMD_TEST_CONNECTION:
    			return "QQ_FILE_CMD_TEST_CONNECTION";    		
    		case QQ.QQ_FILE_CMD_TEST_CONNECTION_ACK:
    			return "QQ_FILE_CMD_TEST_CONNECTION_ACK";    		
    		case QQ.QQ_FILE_CMD_NOTIFY_NAT_PORT:
    			return "QQ_FILE_CMD_0040";    			
    		default:
    			return "UNKNOWN TYPE " + (int)command;
    	}
    }
    
    /**
     * @param clientTag 客户端标识
     * @return 客户端标识的字符串形式,用于调试
     */
    public static String getClientString(char clientTag) {
        switch (clientTag) {
	        case QQ.QQ_CLIENT_062E:
	            return "GB QQ2000c build 630";
	        case QQ.QQ_CLIENT_072E:
	            return "En QQ2000c build 305";
	        case QQ.QQ_CLIENT_0801:
	            return "En QQ2000c build 630";
	        case QQ.QQ_CLIENT_0A1D:
	            return "GB QQ2003c build 0808";
	        case QQ.QQ_CLIENT_0B07:
	            return "GB QQ2003c build 0925";
	        case QQ.QQ_CLIENT_0B2F:
	            return "GB QQ2003iii build 0117";
	        case QQ.QQ_CLIENT_0B35:  
	            return "GB QQ2003iii build 0304";
	        case QQ.QQ_SERVER_0100:
	            return "QQ Server 0100";
	        default:
	            return "QQ unknown version";
        }
    }
    
    /**
     * 得到状态的字符串表示
     * @param status 状态码
     * @return 字符串形式的状态码
     */
    public static String getStatusString(byte status) {
    	switch(status) {
    		case QQ.QQ_FRIEND_STATUS_ONLINE:
    			return "online";
    		case QQ.QQ_FRIEND_STATUS_OFFLINE:
    			return "offline";
    		case QQ.QQ_FRIEND_STATUS_AWAY:
    			return "away";
    		case QQ.QQ_FRIEND_STATUS_HIDDEN:
    			return "hidden";
    		default:
    			return "Unknown Status";
    	}
    }
    
    /**
     * 这个不是用于调试的,真正要用的方法
     * @param encoding 编码方式
     * @return 编码方式的字符串表示形式
     */
    public static String getEncodingString(char encoding) {
        switch(encoding) {
        	case QQ.QQ_IM_ENCODING_GB:
        	    return "GBK";
        	case QQ.QQ_IM_ENCODING_EN:
        	    return "ISO-8859-1";
        	case QQ.QQ_IM_ENCODING_BIG5:
        	    return "BIG5";
        	default:
        	    return "GBK";
        }
    }
    
    /**
     * 用于调试
     * @param type 收到的消息类型
     * @return 消息类型的字符串表示
     */
    public static String getIMTypeString(char type) {
        switch (type) {
	        case QQ.QQ_RECV_IM_TO_BUDDY:
	            return "QQ_RECV_IM_TO_BUDDY";
	        case QQ.QQ_RECV_IM_TO_UNKNOWN:
	            return "QQ_RECV_IM_TO_UNKNOWN";
	        case QQ.QQ_RECV_IM_CLUSTER_IM:
	            return "QQ_RECV_IM_CLUSTER_IM";
	        case QQ.QQ_RECV_IM_ADDED_TO_CLUSTER:
	            return "QQ_RECV_IM_ADDED_TO_CLUSTER";
	        case QQ.QQ_RECV_IM_DELETED_FROM_CLUSTER:
	            return "QQ_RECV_IM_DEL_FROM_CLUSTER";
	        case QQ.QQ_RECV_IM_REQUEST_JOIN_CLUSTER:
	            return "QQ_RECV_IM_REQUEST_JOIN_CLUSTER";
	        case QQ.QQ_RECV_IM_CREATE_CLUSTER:
	            return "QQ_RECV_IM_CREATE_CLUSTER";
	        case QQ.QQ_RECV_IM_SYS_MESSAGE:
	            return "QQ_RECV_IM_SYS_MESSAGE";
	        case QQ.QQ_RECV_IM_APPROVE_JOIN_CLUSTER:
	            return "QQ_RECV_IM_APPROVE_JOIN_CLUSTER";
	        case QQ.QQ_RECV_IM_REJECT_JOIN_CLUSTER:
	            return "QQ_RECV_IM_REJECT_JOIN_CLUSTER";
	        default:
	            return "QQ_RECV_IM_UNKNOWN";
        }
    }
    
    /**
     * 返回普通消息中的类型,仅用作调试
     * @param type
     * @return
     */
    public static String getNormalIMTypeString(char type) {
        switch(type) {
            case QQ.QQ_IM_NORMAL_TEXT:
                return "QQ_IM_NORMAL_TEXT";
            case QQ.QQ_IM_TCP_REQUEST:
                return "QQ_IM_TCP_REQUEST";
            case QQ.QQ_IM_ACCEPT_TCP_REQUEST:
                return "QQ_IM_ACCEPT_TCP_REQUEST";
            case QQ.QQ_IM_REJECT_TCP_REQUEST:
                return "QQ_IM_REJECT_TCP_REQUEST";
            case QQ.QQ_IM_UDP_REQUEST:
                return "QQ_IM_UDP_REQUEST";
            case QQ.QQ_IM_ACCEPT_UDP_REQUEST:
                return "QQ_IM_ACCEPT_UDP_REQUEST";
            case QQ.QQ_IM_REJECT_UDP_REQUEST:
                return "QQ_IM_REJECT_UDP_REQUEST";
            case QQ.QQ_IM_NOTIFY_IP:
                return "QQ_IM_NOTIFY_IP";
            case QQ.QQ_IM_PLEASE_CONNECT_ME:
                return "QQ_IM_PLEASE_CONNECT_ME";
            case QQ.QQ_IM_REPORT_CONNECTION_SOURCE_INFO:
                return "QQ_IM_REPORT_CONNECTION_SOURCE_INFO";
            case QQ.QQ_IM_REPORT_CONNECTION_DEST_INFO:
                return "QQ_IM_REPORT_CONNECTION_DEST_INFO";
            case QQ.QQ_IM_REQUEST_CANCELED:
                return "QQ_IM_REQUEST_CANCELED";
            default:
                return String.valueOf((int)type);
        }
    }
    
    /**
     * 返回字符串形式的回复类型,仅用于调试
     * @param type 回复类型
     * @return 字符串形式的回复类型
     */
    public static String getIMReplyType(byte type) {
        switch(type) {
        	case QQ.QQ_IM_NORMAL_REPLY:
        	    return "QQ_IM_TEXT";
        	case QQ.QQ_IM_AUTO_REPLY:
        	    return "QQ_IM_AUTO_REPLY";
        	default:
        	    return "UNKNOWN";
        }
    }
    
    /**
     * 在buf字节数组中的begin位置开始,查找字节b出现的第一个位置
     * @param buf 字节数组
     * @param begin 开始未知索引
     * @param b 要查找的字节
     * @return 找到则返回索引,否则返回-1
     */
    public static int indexOf(byte[] buf, int begin, byte b) {
    	for(int i = begin; i < buf.length; i++) {
    		if(buf[i] == b)
    			return i;
    	}
    	return -1;
    }
    
    /**
     * 在buf字节数组中的begin位置开始,查找字节数组b中只要任何一个出现的第一个位置
     * @param buf 字节数组
     * @param begin 开始未知索引
     * @param b 要查找的字节数组
     * @return 找到则返回索引,否则返回-1
     */
    public static int indexOf(byte[] buf, int begin, byte[] b) {
    	for(int i = begin; i < buf.length; i++) {
    		for(int j = 0; j < b.length; j++)
	    		if(buf[i] == b[j])
	    			return i;
    	}
    	return -1;
    }
    
	/**
	 * @return Random对象
	 */
	public static Random random() {
		if (random == null)
			random = new Random();
		return random;
	}

	/**
	 * 从content的offset位置起的4个字节解析成int类型
	 * @param content 字节数组
	 * @param offset 偏移
	 * @return int
	 */
	public static final int parseInt(byte[] content, int offset) {
		return ((content[offset++] & 0xff) << 24) | ((content[offset++] & 0xff) << 16) | ((content[offset++] & 0xff) << 8) | (content[offset++] & 0xff);
	}

	/**
	 * 从content的offset位置起的2个字节解析成char类型
	 * @param content 字节数组
	 * @param offset 偏移
	 * @return char
	 */
	public static final char parseChar(byte[] content, int offset) {
		return (char) (((content[offset++] & 0xff) << 8) | (content[offset++] & 0xff));
	}
}

⌨️ 快捷键说明

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