JML

net.sf.jqql.packets.out
Class LoginPacket

java.lang.Object
  extended by net.sf.jqql.packets.Packet
      extended by net.sf.jqql.packets.OutPacket
          extended by net.sf.jqql.packets.BasicOutPacket
              extended by net.sf.jqql.packets.out.LoginPacket

public class LoginPacket
extends BasicOutPacket

 QQ login request packet, format:
 1. head
 2. initial key, 16 byte
 3. 16 byte content made by encoding " " using user's key
 4 36 byte fixed content, unknown meaning
 5. login status, like invisible login and etc, 1 byte
 6. 16 byte fixed content, unknown meaning
 7. login token length, 1 byte
 8. login token
 9. login mode, 1 byte, support normal at present
 10. unknown 1 byte, 0x40
 11. segment count behind, 1 byte, 1 segment uses 9 byte(I guess)
 12. segment, basic fixed content everytime, unknown meaning
 13. If not long enough, fill 0  till reach the login packet length.
 14. tail

 QQ登录请求包,格式为
 1. 头部
 2. 初始密钥,16字节
 3. 用户的密码密钥加密一个空串得到的16字节
 4. 36字节的固定内容,未知含义
 5. 登录状态,隐身登录还是什么,1字节
 6. 16字节固定内容,未知含义
 7. 登录令牌长度,1字节
 8. 登录令牌
 9. 登录模式,1字节,目前只支持普通模式
 10. 未知1字节,0x40
 11. 后面段的个数,1字节,1个段9字节(猜测)
 12. 段,每次基本都是固定内容,未知含义
 13. 长度不足则全部填0知道符合登录包长度
 14. 尾部
 

Author:
luma

Field Summary
 
Fields inherited from class net.sf.jqql.packets.OutPacket
ack, key, resendCountDown, sendCount, seq, timeout
 
Fields inherited from class net.sf.jqql.packets.Packet
bodyBuf, bodyDecrypted, command, crypter, ds, duplicated, header, log, sequence, source, user
 
Constructor Summary
LoginPacket(ByteBuffer buf, int length, QQUser user)
           
LoginPacket(QQUser user)
          constructor 构造函数
 
Method Summary
 String getPacketName()
           
protected  void putBody(ByteBuffer buf)
          initialize packet body 初始化包体
 
Methods inherited from class net.sf.jqql.packets.BasicOutPacket
decryptBody, encryptBody, getBodyBytes, getCryptographStart, getFamily, getHeadLength, getLength, getTailLength, parseHeader, parseTail, postFill, putHead, putTail, toString, validateHeader
 
Methods inherited from class net.sf.jqql.packets.OutPacket
dump, fill, getKey, getNextSeq, getSendCount, getTimeout, needAck, needResend, parseBody, setKey, setSendCount, setTimeout
 
Methods inherited from class net.sf.jqql.packets.Packet
equals, getCommand, getHeader, getSequence, getSource, hash, hashCode, isDuplicated, setDuplicated, setHeader, setSequence
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LoginPacket

public LoginPacket(QQUser user)
constructor 构造函数


LoginPacket

public LoginPacket(ByteBuffer buf,
                   int length,
                   QQUser user)
            throws PacketParseException
Parameters:
buf -
length -
Throws:
PacketParseException
Method Detail

getPacketName

public String getPacketName()
Overrides:
getPacketName in class BasicOutPacket
Returns:
descriptive name of packet 包的描述性名称

putBody

protected void putBody(ByteBuffer buf)
Description copied from class: Packet
initialize packet body 初始化包体

Specified by:
putBody in class Packet
Parameters:
buf - ByteBuffer

JML