📄 qq.java
字号:
/*
* 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 {
// TODO update plugin
/** QQ UDP包的头部字节长度 */
public static final int QQ_UDP_HEADER_LENGTH = 7;
/** QQ TCP包的头部字节长度 */
public static final int QQ_TCP_HEADER_LENGTH = 9;
/** QQ包的尾部字节长 */
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;
/** 不需要确认的包的发送次数,这个值应该是随便的,由于QQ Logout包发了4次,所以我选4 */
public static final int QQ_ACK_PACKET_SEND_TIME = 4;
/** 最开始登陆时发送的初始密钥,用来加密登陆消息 */
public static byte[] iniKey = new byte[] {
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
};
/** QQ登陆请求中第23字节到51字节的固定内容 */
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登陆请求中第53字节到68字节的固定内容 */
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;
/** 消息最大长度 */
public static final int MAX_SEND_IM_SIZE = 400;
/** 密钥长度 */
public static final int QQ_KEY_LENGTH = 16;
/** 登陆信息长度 */
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代理时连接QQ服务器的端口 */
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;
/** 最大重发次数 */
public static final int QQ_RESEND_MAX = 5;
/** Keep Alive包发送间隔,单位: ms */
public static final long QQ_KEEP_ALIVE_INTERVAL = 60000;
/** QQ分组的名称最大字节长度,注意一个汉字是两个字节 */
public static final int QQ_MAX_GROUP_NAME_BYTE = 16;
/** QQ昵称的最长长度 */
public static final int QQ_NAME_LENGTH_MAX = 250;
/** QQ消息的最长长度 */
public static final int QQ_MSG_IM_MAX = 1500;
/** QQ缺省表情个数 */
public static final int QQ_SMILEY_AMOUNT = 96;
/** 用户的信息的字段个数 */
public static final int QQ_CONTACT_FIELDS = 37;
/** 用户备注信息的字段个数 */
public static final int QQ_REMARK_FIELDS = 7;
/** 客户端版本号标志-client GB QQ2000c build 630 */
public static final char QQ_CLIENT_062E = 0x062E;
/** 客户端版本号标志-client En QQ2000c build 305 */
public static final char QQ_CLIENT_072E = 0x072E;
/** 客户端版本号标志-client En QQ2000c build 630 */
public static final char QQ_CLIENT_0801 = 0x0801;
/** 客户端版本号标志-client Gb QQ2003c build 0808 */
public static final char QQ_CLIENT_0A1D = 0x0A1D;
/** 客户端版本号标志-client Gb QQ2003c build 0925 */
public static final char QQ_CLIENT_0B07 = 0x0B07;
/** 客户端版本号标志-client GB QQ2003iii build 0117 */
public static final char QQ_CLIENT_0B2F = 0x0B2f;
/** 客户端版本号标志-GB QQ2003iii build 0304 (offical release) */
public static final char QQ_CLIENT_0B35 = 0x0B35;
/** 客户端版本号标志-QQ20003 III 提示升级后代码变成了这个 */
public static final char QQ_CLIENT_0B37 = 0x0B37;
/** 客户端版本号标志-QQ2004 会员内测版 */
public static final char QQ_CLIENT_0C0B = 0x0C0B;
/** 客户端版本号标志-QQ2004 预览版 */
public static final char QQ_CLIENT_0C0D = 0x0C0D;
/** 客户端版本号标志-server */
public static final char QQ_SERVER_0100 = 0x0100;
/** 程序缺省使用的客户端版本号 */
public static final char QQ_CLIENT = QQ_CLIENT_0B37;
/** 这是QQ的普通用途的消息包开头字节 */
public static final byte QQ_PACKET_TAG = 0x02;
/** 这是文件传输时的控制消息包开头字节 */
public static final byte QQ_FILE_CONTROL_PACKET_TAG = 0x00;
/** 这是文件传输时的数据消息包开头字节 */
public static final byte QQ_FILE_DATA_PACKET_TAG = 0x03;
/** 这是文件中转包的开头字节 */
public static final byte QQ_FILE_AGENT_PACKET_TAG = 0x4;
/** 这个是QQ普通用途消息包的尾部字节 */
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;
/** 标志-QQ会员 */
public static final byte QQ_FRIEND_FLAG_QQ_MEMBER = 0x01;
/** 标志-手机 */
public static final byte QQ_FRIEND_FLAG_MOBILE = 0x10;
/** 标志-手机绑定 */
public static final byte QQ_FRIEND_FLAG_BIND_MOBILE = 0x20;
/** 在线状态-在线 */
public static final byte QQ_FRIEND_STATUS_ONLINE = 10;
/** 在线状态-离线 */
public static final byte QQ_FRIEND_STATUS_OFFLINE = 20;
/** 在线状态-离开 */
public static final byte QQ_FRIEND_STATUS_AWAY = 30;
/** 在线状态-隐身 */
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;
/** 登录信息-密码错误 */
public static final byte QQ_LOGIN_REPLY_PWD_ERROR = 0x02;
/** 登录信息-其他错误 */
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;
/** 改变在线状态成功 */
public static final byte QQ_CHANGE_STATUS_REPLY_OK = 0x30;
/** 发送消息成功 */
public static final byte QQ_SEND_IM_REPLY_OK = 0x00;
/** 发送认证消息成功 */
public static final byte QQ_ADD_FRIEND_AUTH_REPLY_OK = 0x30;
/** 删除好友成功 */
public static final byte QQ_DELETE_FRIEND_REPLY_OK = 0x00;
/** 把自己从对方好友中删除成功 */
public static final byte QQ_REMOVE_SELF_REPLY_OK = 0x00;
/** 得到密钥成功 */
public static final byte QQ_REQUEST_KEY_REPLY_OK = 0x00;
/** 好友列表从第一个好友开始 */
public static final char QQ_FRIEND_LIST_POSITION_START = 0x0000;
/** 好友列表已经全部得到 */
public static final char QQ_FRIEND_LIST_POSITION_END = 0xFFFF;
/** 在线好友列表从第一个好友开始 */
public static final byte QQ_FRIEND_ONLINE_LIST_POSITION_START = 0x00;
/** 在线好友列表已经全部得到 */
public static final byte QQ_FRIEND_ONLINE_LIST_POSITION_END = (byte)0xFF;
/** 不对得到的好友列表排序 */
public static final byte QQ_FRIEND_LIST_UNSORTED = 0;
/** 对得到的好友列表排序 */
public static final byte QQ_FRIEND_LIST_SORTED = 1;
/** 命令常量-登出 */
public static final char QQ_CMD_LOGOUT = 0x0001;
/** 命令常量-保持在线状态 */
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;
/** 命令常量-添加一个好友 */
public static final char QQ_CMD_ADD_FRIEND = 0x0009;
/** 命令常量-删除一个好友 */
public static final char QQ_CMD_DELETE_FRIEND = 0x000A;
/** 命令常量-发送验证信息 */
public static final char QQ_CMD_ADD_FRIEND_AUTH = 0x000B;
/** 命令常量-改变自己的在线状态 */
public static final char QQ_CMD_CHANGE_STATUS = 0x000D;
/** 命令常量-确认收到了系统消息 */
public static final char QQ_CMD_ACK_SYS_MSG = 0x0012;
/** 命令常量-发送消息 */
public static final char QQ_CMD_SEND_IM = 0x0016;
/** 命令常量-接收消息 */
public static final char QQ_CMD_RECV_IM = 0x0017;
/** 命令常量-把自己从对方好友名单中删除 */
public static final char QQ_CMD_REMOVE_SELF = 0x001C;
/** 请求一些操作需要的密钥,比如文件中转,视频也有可能 */
public static final char QQ_CMD_REQUEST_KEY = 0x001D;
/** 命令常量-电话??可能是收到了手机消息的意思 */
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;
/** 命令常量 - 群相关命令 */
public static final char QQ_CMD_CLUSTER_CMD = 0x0030;
/** 命令常量 - 测试连接 */
public static final char QQ_CMD_TEST = 0x0031;
/** 命令常量-上传下载好友分组的名字 */
public static final char QQ_CMD_GROUP_NAME_OP = 0x003C;
/** 命令常量-上传分组中的好友QQ号列表 */
public static final char QQ_CMD_UPLOAD_GROUP_FRIEND = 0x003D;
/** 命令常量-上传下载好友备注 */
public static final char QQ_CMD_FRIEND_REMARK_OP = 0x003E;
/** 命令常量-下载分组中的好友QQ号列表 */
public static final char QQ_CMD_DOWNLOAD_GROUP_FRIEND = 0x0058;
/** 命令常量-接收到系统消息 */
public static final char QQ_CMD_RECV_MSG_SYS = 0x0080;
/** 命令常量-好友改变状态 */
public static final char QQ_CMD_RECV_MSG_FRIEND_CHANGE_STATUS = 0x0081;
/** 请求密钥类型 - 未知 */
public static final byte QQ_REQUEST_UNKNOWN_KEY = 0x3;
/** 请求密钥类型 - 文件中转密钥 */
public static final byte QQ_REQUEST_FILE_AGENT_KEY = 0x4;
/** 群操作命令-创建群 */
public static final byte QQ_CLUSTER_CMD_CREATE_CLUSTER = 0x01;
/** 群操作命令-成员选项?暂时未用到 */
public static final byte QQ_CLUSTER_CMD_MEMBER_OPT = 0x02;
/** 群操作命令-修改群资料 */
public static final byte QQ_CLUSTER_CMD_MODIFY_CLUSTER_INFO = 0x03;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -