?? utils.java
字號:
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 + -