|

楼主 |
发表于 2004-3-21 16:17:01
|
显示全部楼层
我正在上传新的帮助文件和发布版本,请在北京时间16:30以后下载更新的版本
帮助文件:http://vip.sinomac.net/gaimqq/GaimQQ_0.2.7.pdf
关于这次的问题主要是没有参照版本,以前我们可以先看QQ2003发什么样的数据出去,然后GaimQQ可以模拟同样的数据,而3.18腾讯改动协议以后,QQ2003正式版(build 0304)自己都无法拿到好友列表(不信的话你们可以装一个新号看看),所以只有自己摸索了。
3.18号的协议改动现在发现的有两个:
1. 以前在拿好友的数据包中发出0x000000, 但是现在需要0x0000000001, 而且这个是我自己测试出来的,不敢保证完全正确,不过一般在重发2-3此以后就可以拿到。
2. 以前如果好友列表很长,QQ会分几个数据包发给客户端,不过现在是放在一个很大的包里的,使得GaimQQ中以前的缓冲548字节不够(548是UDP包理论上建议的安全数据长度),现在更新的版本我给了65535个字节,是一个TCP包的最大容量,应该没问题了。
我个人的QQ号最多的19个好友,所以没有发现这个问题。现在用斑竹和whg提供的测试账号,可以成功读取51个好友。(希望大家回帖说明多少好友可以成功的)
如果大家有兴趣的,可以帮我测试什么样的数据可以嘴快的返回好友列表
(00,00,00,00,01 在 TCP连接的情况下,我测试的效果最好,一般小于3次重发就拿到了):
方法如下:
从菜单中选择"QQ命令调试" (Any QQ command).
在命令区输入0x26, 这是读好友列表的命令,
在数据区输入测试数据,比如:00,00,00,00,02
3个字节我已经测试完了,效果很不好,现在测试4-5个字节,或者更多的组合。
如果有热心人,puzzlebird 在这里谢谢了。 |
|