?? qq.java
字號(hào):
/*
* LumaQQ - Java QQ Client
*
* Copyright (C) 2004 luma <stubma@163.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package edu.tsinghua.lumaqq.qq;
/**
* 定義一些QQ用到的常量
*
* @author 馬若劼
*/
public interface QQ {
/** QQ UDP包的頭部字節(jié)長(zhǎng)度 */
public static final int QQ_UDP_HEADER_LENGTH = 7;
/** QQ TCP包的頭部字節(jié)長(zhǎng)度 */
public static final int QQ_TCP_HEADER_LENGTH = 9;
/** QQ包的尾部字節(jié)長(zhǎng) */
public static final int QQ_TAIL_LENGTH = 1;
/** 代理類型 - 無代理 */
public static final int PROXY_NONE = 0;
/** 代理類型 - Socks5代理 */
public static final int PROXY_SOCKS5 = 1;
/** 代理類型 - Http代理 */
public static final int PROXY_HTTP = 2;
/** 不需要確認(rèn)的包的發(fā)送次數(shù),這個(gè)值應(yīng)該是隨便的,由于QQ Logout包發(fā)了4次,所以我選4 */
public static final int QQ_ACK_PACKET_SEND_TIME = 4;
/** 最開始登陸時(shí)發(fā)送的初始密鑰,用來加密登陸消息 */
public static byte[] iniKey = new byte[] {
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
};
/** QQ登陸請(qǐng)求中第23字節(jié)到51字節(jié)的固定內(nèi)容 */
public static byte[] login_23_51 = new byte[] {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, (byte)0xBF, 0x14, 0x11, 0x20,
0x03, (byte)0x9D, (byte)0xB2, (byte)0xE6, (byte)0xB3, 0x11, (byte)0xB7, 0x13,
(byte)0x95, 0x67, (byte)0xDA, 0x2C, 0x01
};
/** QQ登陸請(qǐng)求中第53字節(jié)到68字節(jié)的固定內(nèi)容 */
public static byte[] login_53_68 = new byte[] {
(byte)0x82, 0x2A, (byte)0x91, (byte)0xFD, (byte)0xA5, (byte)0xCA, 0x67, 0x4C,
(byte)0xAC, (byte)0x81, 0x1F, 0x6F, 0x52, 0x05, (byte)0xA7, (byte)0xBF
};
/** 包最大大小 */
public static final int MAX_PACKET_SIZE = 65535;
/** 消息最大長(zhǎng)度 */
public static final int MAX_SEND_IM_SIZE = 400;
/** 密鑰長(zhǎng)度 */
public static final int QQ_KEY_LENGTH = 16;
/** 登陸信息長(zhǎng)度 */
public static final int QQ_LOGIN_DATA_LENGTH = 69;
/** QQ UDP缺省端口 */
public static final int QQ_UDP_PORT = 8000;
/** QQ TCP缺省端口 */
public static final int QQ_TCP_PORT = 80;
/** 使用HTTP代理時(shí)連接QQ服務(wù)器的端口 */
public static final int QQ_HTTP_PORT = 443;
/** QQ缺省編碼方式 */
public static final String QQ_CHARSET_DEFAULT = "GBK";
/** 消息編碼,好像可以自己胡亂定義 */
public static final char QQ_IM_ENCODING_GB = 0x8602;
public static final char QQ_IM_ENCODING_EN = 0x0000;
public static final char QQ_IM_ENCODING_BIG5 = 0x8603;
/** 單位: ms */
public static final long QQ_SENDQUEUE_TIMEOUT = 5000;
/** 最大重發(fā)次數(shù) */
public static final int QQ_RESEND_MAX = 5;
/** Keep Alive包發(fā)送間隔,單位: ms */
public static final long QQ_KEEP_ALIVE_INTERVAL = 60000;
/** QQ分組的名稱最大字節(jié)長(zhǎng)度,注意一個(gè)漢字是兩個(gè)字節(jié) */
public static final int QQ_MAX_GROUP_NAME_BYTE = 16;
/** QQ昵稱的最長(zhǎng)長(zhǎng)度 */
public static final int QQ_NAME_LENGTH_MAX = 250;
/** QQ消息的最長(zhǎng)長(zhǎng)度 */
public static final int QQ_MSG_IM_MAX = 1500;
/** QQ缺省表情個(gè)數(shù) */
public static final int QQ_SMILEY_AMOUNT = 96;
/** 用戶的信息的字段個(gè)數(shù) */
public static final int QQ_CONTACT_FIELDS = 37;
/** 用戶備注信息的字段個(gè)數(shù) */
public static final int QQ_REMARK_FIELDS = 7;
/** 客戶端版本號(hào)標(biāo)志-client GB QQ2000c build 630 */
public static final char QQ_CLIENT_062E = 0x062E;
/** 客戶端版本號(hào)標(biāo)志-client En QQ2000c build 305 */
public static final char QQ_CLIENT_072E = 0x072E;
/** 客戶端版本號(hào)標(biāo)志-client En QQ2000c build 630 */
public static final char QQ_CLIENT_0801 = 0x0801;
/** 客戶端版本號(hào)標(biāo)志-client Gb QQ2003c build 0808 */
public static final char QQ_CLIENT_0A1D = 0x0A1D;
/** 客戶端版本號(hào)標(biāo)志-client Gb QQ2003c build 0925 */
public static final char QQ_CLIENT_0B07 = 0x0B07;
/** 客戶端版本號(hào)標(biāo)志-client GB QQ2003iii build 0117 */
public static final char QQ_CLIENT_0B2F = 0x0B2f;
/** 客戶端版本號(hào)標(biāo)志-GB QQ2003iii build 0304 (offical release) */
public static final char QQ_CLIENT_0B35 = 0x0B35;
/** 客戶端版本號(hào)標(biāo)志-QQ20003 III 提示升級(jí)后代碼變成了這個(gè) */
public static final char QQ_CLIENT_0B37 = 0x0B37;
/** 客戶端版本號(hào)標(biāo)志-QQ2004 會(huì)員內(nèi)測(cè)版 */
public static final char QQ_CLIENT_0C0B = 0x0C0B;
/** 客戶端版本號(hào)標(biāo)志-QQ2004 預(yù)覽版 */
public static final char QQ_CLIENT_0C0D = 0x0C0D;
/** 客戶端版本號(hào)標(biāo)志-server */
public static final char QQ_SERVER_0100 = 0x0100;
/** 程序缺省使用的客戶端版本號(hào) */
public static final char QQ_CLIENT = QQ_CLIENT_0B37;
/** 這是QQ的普通用途的消息包開頭字節(jié) */
public static final byte QQ_PACKET_TAG = 0x02;
/** 這是文件傳輸時(shí)的控制消息包開頭字節(jié) */
public static final byte QQ_FILE_CONTROL_PACKET_TAG = 0x00;
/** 這是文件傳輸時(shí)的數(shù)據(jù)消息包開頭字節(jié) */
public static final byte QQ_FILE_DATA_PACKET_TAG = 0x03;
/** 這是文件中轉(zhuǎn)包的開頭字節(jié) */
public static final byte QQ_FILE_AGENT_PACKET_TAG = 0x4;
/** 這個(gè)是QQ普通用途消息包的尾部字節(jié) */
public static final byte QQ_PACKET_TAIL = 0x03;
/** 正常登陸 */
public static final byte QQ_LOGIN_MODE_NORMAL = 0x0A;
/** 隱身登陸 */
public static final byte QQ_LOGIN_MODE_HIDDEN = 0x28;
/** 性別-男 */
public static final byte QQ_FRIEND_GENDER_GG = 0x0;
/** 性別-女 */
public static final byte QQ_FRIEND_GENDER_MM = 0x1;
/** 性別-未知 */
public static final byte QQ_FRIEND_GENDER_UNKNOWN = (byte) 0xFF;
/** 標(biāo)志-QQ會(huì)員 */
public static final byte QQ_FRIEND_FLAG_QQ_MEMBER = 0x01;
/** 標(biāo)志-手機(jī) */
public static final byte QQ_FRIEND_FLAG_MOBILE = 0x10;
/** 標(biāo)志-手機(jī)綁定 */
public static final byte QQ_FRIEND_FLAG_BIND_MOBILE = 0x20;
/** 在線狀態(tài)-在線 */
public static final byte QQ_FRIEND_STATUS_ONLINE = 10;
/** 在線狀態(tài)-離線 */
public static final byte QQ_FRIEND_STATUS_OFFLINE = 20;
/** 在線狀態(tài)-離開 */
public static final byte QQ_FRIEND_STATUS_AWAY = 30;
/** 在線狀態(tài)-隱身 */
public static final byte QQ_FRIEND_STATUS_HIDDEN = 40;
/** 是否有攝像頭(這是虛擬攝像頭功能) */
public static final int QQ_MISC_STATUS_HAVING_VIDEO = 0x00000001;
/** 登錄信息-成功 */
public static final byte QQ_LOGIN_REPLY_OK = 0x00;
/** 登錄信息-重定向 */
public static final byte QQ_LOGIN_REPLY_REDIRECT = 0x01;
/** 登錄信息-密碼錯(cuò)誤 */
public static final byte QQ_LOGIN_REPLY_PWD_ERROR = 0x02;
/** 登錄信息-其他錯(cuò)誤 */
public static final byte QQ_LOGIN_REPLY_MISC_ERROR = 0x03;
/** 上載好友分組成功 */
public static final byte QQ_UPLOAD_GROUP_FRIEND_OK = 0x00;
/** 上載好友備注成功 */
public static final byte QQ_UPLOAD_FRIEND_REMARK_OK = 0x00;
/** 改變?cè)诰€狀態(tài)成功 */
public static final byte QQ_CHANGE_STATUS_REPLY_OK = 0x30;
/** 發(fā)送消息成功 */
public static final byte QQ_SEND_IM_REPLY_OK = 0x00;
/** 發(fā)送認(rèn)證消息成功 */
public static final byte QQ_ADD_FRIEND_AUTH_REPLY_OK = 0x30;
/** 刪除好友成功 */
public static final byte QQ_DELETE_FRIEND_REPLY_OK = 0x00;
/** 把自己從對(duì)方好友中刪除成功 */
public static final byte QQ_REMOVE_SELF_REPLY_OK = 0x00;
/** 得到密鑰成功 */
public static final byte QQ_REQUEST_KEY_REPLY_OK = 0x00;
/** 好友列表從第一個(gè)好友開始 */
public static final char QQ_FRIEND_LIST_POSITION_START = 0x0000;
/** 好友列表已經(jīng)全部得到 */
public static final char QQ_FRIEND_LIST_POSITION_END = 0xFFFF;
/** 在線好友列表從第一個(gè)好友開始 */
public static final byte QQ_FRIEND_ONLINE_LIST_POSITION_START = 0x00;
/** 在線好友列表已經(jīng)全部得到 */
public static final byte QQ_FRIEND_ONLINE_LIST_POSITION_END = (byte)0xFF;
/** 不對(duì)得到的好友列表排序 */
public static final byte QQ_FRIEND_LIST_UNSORTED = 0;
/** 對(duì)得到的好友列表排序 */
public static final byte QQ_FRIEND_LIST_SORTED = 1;
/** 命令常量-登出 */
public static final char QQ_CMD_LOGOUT = 0x0001;
/** 命令常量-保持在線狀態(tài) */
public static final char QQ_CMD_KEEP_ALIVE = 0x0002;
/** 命令常量-修改自己的信息 */
public static final char QQ_CMD_MODIFY_INFO = 0x0004;
/** 命令常量-查找用戶 */
public static final char QQ_CMD_SEARCH_USER = 0x0005;
/** 命令常量-得到好友信息 */
public static final char QQ_CMD_GET_USER_INFO = 0x0006;
/** 命令常量-添加一個(gè)好友 */
public static final char QQ_CMD_ADD_FRIEND = 0x0009;
/** 命令常量-刪除一個(gè)好友 */
public static final char QQ_CMD_DELETE_FRIEND = 0x000A;
/** 命令常量-發(fā)送驗(yàn)證信息 */
public static final char QQ_CMD_ADD_FRIEND_AUTH = 0x000B;
/** 命令常量-改變自己的在線狀態(tài) */
public static final char QQ_CMD_CHANGE_STATUS = 0x000D;
/** 命令常量-確認(rèn)收到了系統(tǒng)消息 */
public static final char QQ_CMD_ACK_SYS_MSG = 0x0012;
/** 命令常量-發(fā)送消息 */
public static final char QQ_CMD_SEND_IM = 0x0016;
/** 命令常量-接收消息 */
public static final char QQ_CMD_RECV_IM = 0x0017;
/** 命令常量-把自己從對(duì)方好友名單中刪除 */
public static final char QQ_CMD_REMOVE_SELF = 0x001C;
/** 請(qǐng)求一些操作需要的密鑰,比如文件中轉(zhuǎn),視頻也有可能 */
public static final char QQ_CMD_REQUEST_KEY = 0x001D;
/** 命令常量-電話??可能是收到了手機(jī)消息的意思 */
public static final char QQ_CMD_CELL_PHONE_1 = 0x0021;
/** 命令常量-登陸 */
public static final char QQ_CMD_LOGIN = 0x0022;
/** 命令常量-得到好友列表 */
public static final char QQ_CMD_GET_FRIEND_LIST = 0x0026;
/** 命令常量-得到在線好友列表 */
public static final char QQ_CMD_GET_FRIEND_ONLINE = 0x0027;
/** 命令常量-又是電話? */
public static final char QQ_CMD_CELL_PHONE_2 = 0x0029;
/** 命令常量 - 群相關(guān)命令 */
public static final char QQ_CMD_CLUSTER_CMD = 0x0030;
/** 命令常量 - 測(cè)試連接 */
public static final char QQ_CMD_TEST = 0x0031;
/** 命令常量-上傳下載好友分組的名字 */
public static final char QQ_CMD_GROUP_NAME_OP = 0x003C;
/** 命令常量-上傳分組中的好友QQ號(hào)列表 */
public static final char QQ_CMD_UPLOAD_GROUP_FRIEND = 0x003D;
/** 命令常量-上傳下載好友備注 */
public static final char QQ_CMD_FRIEND_REMARK_OP = 0x003E;
/** 命令常量-下載分組中的好友QQ號(hào)列表 */
public static final char QQ_CMD_DOWNLOAD_GROUP_FRIEND = 0x0058;
/** 命令常量-接收到系統(tǒng)消息 */
public static final char QQ_CMD_RECV_MSG_SYS = 0x0080;
/** 命令常量-好友改變狀態(tài) */
public static final char QQ_CMD_RECV_MSG_FRIEND_CHANGE_STATUS = 0x0081;
/** 請(qǐng)求密鑰類型 - 未知 */
public static final byte QQ_REQUEST_UNKNOWN_KEY = 0x3;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -