📄 qq.java
字号:
/** 群操作命令-得到群资料 */
public static final byte QQ_CLUSTER_CMD_GET_CLUSTER_INFO = 0x04;
/** 群操作命令-激活群 */
public static final byte QQ_CLUSTER_CMD_ACTIVATE_CLUSTER = 0x05;
/** 群操作命令-搜索群 */
public static final byte QQ_CLUSTER_CMD_SEARCH_CLUSTER = 0x06;
/** 群操作命令-加入群 */
public static final byte QQ_CLUSTER_CMD_JOIN_CLUSTER = 0x07;
/** 群操作命令-加入群的验证消息 */
public static final byte QQ_CLUSTER_CMD_JOIN_CLUSTER_AUTH = 0x08;
/** 群操作命令-退出群 */
public static final byte QQ_CLUSTER_CMD_EXIT_CLUSTER = 0x09;
/** 群操作命令-发送群消息 */
public static final byte QQ_CLUSTER_CMD_SEND_IM = 0x0A;
/** 群操作命令-得到在线成员 */
public static final byte QQ_CLUSTER_CMD_GET_ONLINE_MEMBER = 0x0B;
/** 群操作命令-得到成员资料 */
public static final byte QQ_CLUSTER_CMD_GET_MEMBER_INFO = 0x0C;
/** 群操作命令回复-成功 */
public static final byte QQ_CLUSTER_CMD_REPLY_OK = 0x00;
/** 群操作命令回复-不存在这个群 */
public static final byte QQ_CLUSTER_CMD_REPLY_NO_SUCH_CLUSTER = 0x02;
/** 群操作命令回复-你不是该群的成员 */
public static final byte QQ_CLUSTER_CMD_REPLY_NOT_MEMBER = 0x0a;
/** 群类型常量-固定群 */
public static final byte QQ_CLUSTER_TYPE_PERMANENT = 0x01;
/** 群类型常量-临时群 */
public static final byte QQ_CLUSTER_TYPE_TEMPORARY = 0x02;
/** 群认证类型-不需认证 */
public static final byte QQ_CLUSTER_NO_AUTH = 0x01;
/** 群认证类型-需要认证 */
public static final byte QQ_CLUSTER_NEED_AUTH = 0x02;
/** 群认证类型-拒绝任何人加入 */
public static final byte QQ_CLUSTER_NO_ADD = 0x03;
/** 群认证消息类型 - 请求加入群 */
public static final byte QQ_CLUSTER_AUTH_REQUEST = 0x01;
/** 群认证消息类型 - 同意加入群 */
public static final byte QQ_CLUSTER_AUTH_APPROVE = 0x02;
/** 群认证消息类型 - 拒绝加入群 */
public static final byte QQ_CLUSTER_AUTH_REJECT = 0x03;
/** 加入群的回复码 - 加入成功 */
public static final byte QQ_CLUSTER_JOIN_OK = 0x01;
/** 加入群的回复码 - 对方需要认证 */
public static final byte QQ_CLUSTER_JOIN_NEED_AUTH = 0x02;
/** 群的搜索方式 - 根据群号搜索 */
public static final byte QQ_SEARCH_CLUSTER_BY_ID = 0x01;
/** 群的搜索方式 - 搜索示范群 */
public static final byte QQ_SEARCH_DEMO_CLUSTER = 0x02;
/** 消息回复类型 - 正常回复 */
public static final byte QQ_IM_NORMAL_REPLY = 0x01;
/** 消息回复类型 - 自动回复 */
public static final byte QQ_IM_AUTO_REPLY = 0x02;
// 消息来源,主要是MessageQueue使用,和协议关系不大
/** 来自好友 */
public static final int QQ_IM_FROM_FRIEND = 0;
/** 来自系统 */
public static final int QQ_IM_FROM_SYS = 1;
/** 来自群 */
public static final int QQ_IM_FROM_CLUSTER = 2;
/** 组名操作类型 - 上传 */
public static final byte QQ_UPLOAD_GROUP_NAME = 0x2;
/** 组名操作类型 - 下载 */
public static final byte QQ_DOWNLOAD_GROUP_NAME = 0x1;
/** 备注操作类型 - 上传 */
public static final byte QQ_UPLOAD_FRIEND_REMARK = 0x1;
/** 备注操作类型 - 下载 */
public static final byte QQ_DOWNLOAD_FRIEND_REMARK = 0x3;
// 这两个常量用在下载好友分组时
/** 号码类型 - 号码代表一个用户 */
public static final byte QQ_ID_IS_FRIEND = 0x1;
/** 号码类型 - 号码是一个群 */
public static final byte QQ_ID_IS_CLUSTER = 0x4;
// 消息类型,就是ReceiveIMHeader中的类型,对于有些类型,我们做为通知来处理
// 而不是显示在消息窗口中,比如请求加入,验证之类的消息
/** 来自好友的消息 */
public static final char QQ_RECV_IM_TO_BUDDY = 0x0009;
/** 来自陌生人的消息 */
public static final char QQ_RECV_IM_TO_UNKNOWN = 0x000A;
/** 来自群的消息 */
public static final char QQ_RECV_IM_CLUSTER_IM = 0x0020;
/** 通知我被加入到一个群,这个群先前已经建立,我是后来被加的 */
public static final char QQ_RECV_IM_ADDED_TO_CLUSTER = 0x0021;
/** 我被踢出一个群 */
public static final char QQ_RECV_IM_DELETED_FROM_CLUSTER = 0x0022;
/** 有人请求加入群 */
public static final char QQ_RECV_IM_REQUEST_JOIN_CLUSTER = 0x0023;
/** 同意对方加入群 */
public static final char QQ_RECV_IM_APPROVE_JOIN_CLUSTER = 0x0024;
/** 拒绝对方加入群 */
public static final char QQ_RECV_IM_REJECT_JOIN_CLUSTER = 0x0025;
/** 通知我被加入到一个群,我是在群被创建的时候就被加的 */
public static final char QQ_RECV_IM_CREATE_CLUSTER = 0x0026;
/** 收到的系统消息 */
public static final char QQ_RECV_IM_SYS_MESSAGE = 0x0030;
/** 同一个QQ号在其他地方登录,我被踢出 */
public static final char QQ_RECV_IM_KICK_OUT = 0x0001;
// 消息类型,这个类型比上面的类型又再低一级,他们基本从属于QQ_RECV_IM_TO_BUDDY
// 所以他们是normalIMHeader中的类型
/** 普通文件消息 */
public static final char QQ_IM_NORMAL_TEXT = 0x000B;
/** 一个TCP连接请求 */
public static final char QQ_IM_TCP_REQUEST = 0x0001;
/** 接收TCP连接请求 */
public static final char QQ_IM_ACCEPT_TCP_REQUEST = 0x0003;
/** 拒绝TCP连接请求 */
public static final char QQ_IM_REJECT_TCP_REQUEST = 0x0005;
/** UDP连接请求 */
public static final char QQ_IM_UDP_REQUEST = 0x0035;
/** 接受UDP连接请求 */
public static final char QQ_IM_ACCEPT_UDP_REQUEST = 0x0037;
/** 拒绝UDP连接请求 */
public static final char QQ_IM_REJECT_UDP_REQUEST = 0x0039;
/** 通知文件传输端口 */
public static final char QQ_IM_NOTIFY_IP = 0x003B;
/** 请求对方主动连接 */
public static final char QQ_IM_ARE_YOU_BEHIND_FIREWALL = 0x003F;
/** 未知含意 */
public static final char QQ_IM_ARE_YOU_BEHIND_PROXY = 0x0041;
/** 未知含意,0x0041的回复 */
public static final char QQ_IM_YES_I_AM_BEHIND_PROXY = 0x0042;
/** 通知文件中转服务器信息 */
public static final char QQ_IM_NOTIFY_FILE_AGENT_INFO = 0x004B;
/** 取消TCP或者UDP连接请求 */
public static final char QQ_IM_REQUEST_CANCELED = 0x0049;
// 认证类型,加一个人为好友时是否需要验证等等
/** 不需认证 */
public static final byte QQ_AUTH_NO_AUTH = 0;
/** 需要认证 */
public static final byte QQ_AUTH_NEED_AUTH = 1;
/** 对方拒绝加好友 */
public static final byte QQ_AUTH_NO_ADD = 2;
// 这三个常量用在添加好友认证的包中,表示你是请求,或者你拒绝还是同意别人的请求
/** 通过认证 */
public static final byte QQ_MY_AUTH_APPROVE = 0x30;
/** 拒绝认证 */
public static final byte QQ_MY_AUTH_REJECT = 0x31;
/** 请求认证 */
public static final byte QQ_MY_AUTH_REQUEST = 0x32;
// 联系方法的可见类型
/** 完全公开 */
public static final int QQ_CONTACT_OPEN = 0;
/** 仅好友可见 */
public static final int QQ_CONTACT_ONLY_FRIENDS = 1;
/** 完全保密 */
public static final int QQ_CONTACT_CLOSE = 2;
// 系统通知的类型
/** 自己被别人加为好友 */
public static final char QQ_MSG_SYS_BEING_ADDED = 1;
/** 对方请求加你为好友 */
public static final char QQ_MSG_SYS_ADD_FRIEND_REQUEST = 2;
/** 同意对方加自己为好友 */
public static final char QQ_MSG_SYS_ADD_FRIEND_APPROVED = 3;
/** 拒绝对方加自己为好友 */
public static final char QQ_MSG_SYS_ADD_FRIEND_REJECTED = 4;
/** 未知含意 */
public static final char QQ_MSG_SYS_UPDATE_HINT = 9;
// 这是搜索用户时指定的搜索类类型,比如是查看全部在线用户,还是自定义查找
/** 看谁在线上 */
public static final byte QQ_SEARCH_ALL = 0x31;
/** 自定义搜索 */
public static final byte QQ_SEARCH_CUSTOM = 0x30;
/* 以下为专用于文件传输时的常量 */
/** 初始中转服务器,从这些初始的服务器开始请求,直到请求到一个愿意提供中转的服务器为止 */
public static final String[] originalAgents = new String[] {
"218.133.40.38",
"218.133.40.36",
"219.133.40.36"
};
/** QQ文件传送包的头部字节长度 */
public static final int QQ_FILE_PACKET_HEADER_LENGTH = 12;
// 文件数据信息包的命令类型
/** heart beat */
public static final char QQ_FILE_CMD_HEART_BEAT = 0x0001;
/** heart beat的确认 */
public static final char QQ_FILE_CMD_HEART_BEAT_ACK = 0x0002;
/** 文件传输已完成 */
public static final char QQ_FILE_CMD_TRANSFER_FINISHED = 0x0003;
/** 文件操作 */
public static final char QQ_FILE_CMD_FILE_OP = 0x0007;
/** 文件操作的确认 */
public static final char QQ_FILE_CMD_FILE_OP_ACK = 0x0008;
// QQ_FILE_CMD_FILE_OP携带的信息类型
/** 文件基本信息 */
public static final byte QQ_FILE_BASIC_INFO = 0x1;
/** 文件数据 */
public static final byte QQ_FILE_DATA_INFO = 0x2;
/** 文件EOF */
public static final byte QQ_FILE_EOF = 0x3;
// 文件控制信息传输包的命令类型
/** 发送者say hello */
public static final char QQ_FILE_CMD_SENDER_SAY_HELLO = 0x0031;
/** 对发送者hello的确认 */
public static final char QQ_FILE_CMD_SENDER_SAY_HELLO_ACK = 0x0032;
/** 接收者say hello */
public static final char QQ_FILE_CMD_RECEIVER_SAY_HELLO = 0x0033;
/** 对接受者hello的确认 */
public static final char QQ_FILE_CMD_RECEIVER_SAY_HELLO_ACK = 0x0034;
/** 对通知IP的确认,即对QQ_IM_NOTIFY_IP的确认 */
public static final char QQ_FILE_CMD_NOTIFY_IP_ACK = 0x003C;
/** 试探连接 */
public static final char QQ_FILE_CMD_PING = 0x003D;
/** 试探连接的确认 */
public static final char QQ_FILE_CMD_PONG = 0x003E;
/** 主动连接对方 */
public static final char QQ_FILE_CMD_YES_I_AM_BEHIND_FIREWALL = 0x0040;
// 文件中转信息包的命令类型
/** 发送者请求对方提供中转服务 */
public static final char QQ_FILE_CMD_REQUEST_AGENT = 0x0001;
/** 接收者向中转服务器报到 */
public static final char QQ_FILE_CMD_CHECK_IN = 0x0002;
/** 转发包,这个包里面内嵌着一个文件数据信息包 */
public static final char QQ_FILE_CMD_FORWARD = 0x0003;
/** 传输结束 */
public static final char QQ_FILE_CMD_FORWARD_FINISHED = 0x0004;
/** 服务器通知可以开始传输数据 */
public static final char QQ_FILE_CMD_IT_IS_TIME = 0x0005;
/** 我已经准备好 */
public static final char QQ_FILE_CMD_I_AM_READY = 0x0006;
// QQ_FILE_CMD_REQUEST_AGENT命令的应答类型
/** 批准中转请求 */
public static final char QQ_FILE_AGENT_SERVICE_APPROVED = 0x0000;
/** 我现在忙,你找别人吧 */
public static final char QQ_FILE_AGENT_SERVICE_REDIRECTED = 0x0001;
// 请求传送文件消息中的一个标志字节,0x65后面的那个,意思不明,姑且这样
/** UDP,可能不是这意思 */
public static final byte QQ_TRANSFER_FILE_UDP = 0;
/** 直接UDP,可能不是这意思 */
public static final byte QQ_TRANSFER_FILE_DIRECT_UDP = 1;
/** TCP,可能不是这意思 */
public static final byte QQ_TRANSFER_FILE_TCP = 2;
/** 直接TCP,可能不是这意思 */
public static final byte QQ_TRANSFER_FILE_DIRECT_TCP = 3;
// 传送文件的各种情况,每种情况有其对应的连接策略,这个和协议无关,我自己定义的
/** 双方位于同一个防火墙后 */
public static final int QQ_SAME_LAN = 0;
/** 双方都不在防火墙后 */
public static final int QQ_NONE_BEHIND_FIREWALL = 1;
/** 我在防火墙后 */
public static final int QQ_I_AM_BEHIND_FIREWALL = 2;
/** 他在防火墙后 */
public static final int QQ_HE_IS_BEHIND_FIREWALL = 3;
/** 双方在不同的防火墙后 */
public static final int QQ_ALL_BEHIND_FIREWALL = 4;
// say hello时的hello byte,不同的情况这个字节不一样
/** 双方位于同一个防火墙后的Hello */
public static final byte QQ_SAME_IN_TO_SAME_IN_HELLO = 0;
/** 一个人在防火墙后,内部的人是发送方时的Hello */
public static final byte QQ_IN_TO_OUT_HELLO = 1;
/** 一个人在防火墙后,外部的人是发送方时的Hello */
public static final byte QQ_OUT_TO_IN_HELLO = 2;
/** 两个都不在防火墙内时的Hello */
public static final byte QQ_OUT_TO_OUT_HELLO = 0;
/** 最大的做MD5的长度,当传送一个文件时,如果这个文件很大,则只对文件的前面一部分做MD5 */
public static final int QQ_MAX_FILE_MD5_LENGTH = 10002432;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -