« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
我是沙漠中细沙一砾, 你们是我身旁盛开的灿烂的仙人掌花, 点缀着我孤寂的生活! |
Blog信息 |
blog名称: 日志总数:30 评论数量:76 留言数量:-2 访问次数:163199 建立时间:2004年12月30日 |

| |
LumaQQ 跬步文档 其他
godknows 发表于 2005/6/4 0:11:05 |
LumaQQ 跬步文档
得到好友列表
Luma, 清华大学更新时间: 2005-04-07
登录之后还需要得到好友列表。现在得到好友列表这个包重要性已经不太高了,因为这个包无法得到分组信息,只能得到列表,你看到现在QQ 2004以上版本都是自动就把你的分组都同步下来,这个光用得到好友列表的功能做不到,我想这个包现在只是做为兼容性的考虑还存在。
请求包格式
头部
起始好友列表返回位置,2字节。假设你有10个好友,这个字段你设置成3,那么就从第3个好友开始返回,预期你应该得到7个好友。那么第三个是怎么界定的?服务器是按照你的好友的QQ从小到大排序决定的。另外,为什么需要这个字段,主要是怕你好友太多,一个包得不完,QQ服务器端的设定是一次只返回50个好友。
返回的好友列表是否排序, 1字节。相关常量如下:
QQ_FRIEND_LIST_SORTED: 排序
QQ_FRIEND_LIST_UNSORTED: 不排序
尾部
回复包格式
头部
下一次好友列表开始位置,2字节。你的好友很多,还需要再请求,那么你下次要把请求包中的起始位置字段置成这个值。如果这个字段是0xFFFF,那就是服务器告诉你,你的好友都得到了。和起始位置相关的常量有:
QQ_FRIEND_LIST_POSITION_START: 开始请求好友列表。你发第一个包的时候应该把起始位置置为这个值
QQ_FRIEND_LIST_POSITION_END: 好友已经全部得到
好友QQ号,4字节
头像,2字节
年龄,1字节
性别,1字节
昵称长度,1字节
昵称
2个未知字节
1字节扩展标志,bit1表示是否有QQ Show,其他未知
1字节通用标志
bit1 => 会员
bit4 => TCP方式登陆
bit5 => 开发移动QQ
bit6 => 绑定到手机
bit7 => 是否有摄像头
如果有更多好友,重复3 - 11部分
尾部
成功时
操作成功时,核心层会触发QQ_GET_LOGIN_TOKEN_SUCCESS事件,这个事件携带的包是GetFriendListReplyPacket,可用的字段如下:
position: char, 下一个请求包的起始位置
friends: List, 包含了好友的信息,每个好友的信息由一个QQFriend类封装,请查看edu.tsinghua.lumaqq.qq.beans.QQFriend.java文件了解这个类的字段信息
失败时
尚未有操作失败事件的定义,因为我不知道如何才是失败,这么久了,这个操作就从没失败过,所以我不知道失败的包是什么样子的。
LumaQQ is a Java QQ client which has a reusable pure Java core and SWT-based GUI |
|
|