JML

net.sf.jqql.packets.in
Class FriendChangeStatusPacket

java.lang.Object
  extended by net.sf.jqql.packets.Packet
      extended by net.sf.jqql.packets.InPacket
          extended by net.sf.jqql.packets.BasicInPacket
              extended by net.sf.jqql.packets.in.FriendChangeStatusPacket

public class FriendChangeStatusPacket
extends BasicInPacket

 packet of friend change status, this is received from sever, its format is
 1. header
 2. friend QQ number, 4 byte
 3. unknown 4 byte
 4. unknown 4 byte
 5. Status friend change to, 1 byte
 6. client version of friend, 2 byte. this version number isn't source of packet header, but is inside denote, for example 
    2004 is 0x04D1
 7. unknown use key, 16 byte
 8. user property sign, 4 byte
 9. my QQ number
 10. unknown 2 byte
 11. unknown 1 byte
 12. tail
 好友状态改变包,这个是从服务器发来的包,格式为
 1. 头部
 2. 好友QQ号,4字节
 3. 未知的4字节
 4. 未知的4字节
 5. 好友改变到的状态,1字节
 6. 好友的客户端版本,2字节。这个版本号不是包头中的source,是内部表示,比如2004是0x04D1
 7. 未知用途的密钥,16字节
 8. 用户属性标志,4字节
 9. 我自己的QQ号,4字节
 10. 未知的2字节
 11. 未知的1字节
 12. 尾部
 

Author:
luma

Field Summary
 char clientVersion
           
 int friendQQ
           
 int myQQ
           
 byte status
           
 byte[] unknownKey
           
 int userFlag
           
 
Fields inherited from class net.sf.jqql.packets.Packet
bodyBuf, bodyDecrypted, command, crypter, ds, duplicated, header, log, sequence, source, user
 
Constructor Summary
FriendChangeStatusPacket(ByteBuffer buf, int length, QQUser user)
          constructed function 构造函数
 
Method Summary
 String getPacketName()
           
protected  void parseBody(ByteBuffer buf)
          parse packet body, from begin position of buf 解析包体,从buf的开头位置解析起
 
Methods inherited from class net.sf.jqql.packets.BasicInPacket
decryptBody, encryptBody, getBodyBytes, getCryptographStart, getFamily, getHeadLength, getLength, getTailLength, parseHeader, parseTail, putBody, putHead, putTail, toString
 
Methods inherited from class net.sf.jqql.packets.InPacket
validateHeader
 
Methods inherited from class net.sf.jqql.packets.Packet
dump, 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
 

Field Detail

friendQQ

public int friendQQ

myQQ

public int myQQ

status

public byte status

userFlag

public int userFlag

unknownKey

public byte[] unknownKey

clientVersion

public char clientVersion
Constructor Detail

FriendChangeStatusPacket

public FriendChangeStatusPacket(ByteBuffer buf,
                                int length,
                                QQUser user)
                         throws PacketParseException
constructed function 构造函数

Parameters:
buf - 缓冲区 // buffer
length - 包长度 // packet length
Throws:
PacketParseException - 解析错误 // parse error
Method Detail

getPacketName

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

parseBody

protected void parseBody(ByteBuffer buf)
                  throws PacketParseException
Description copied from class: Packet
parse packet body, from begin position of buf 解析包体,从buf的开头位置解析起

Specified by:
parseBody in class Packet
Parameters:
buf - ByteBuffer
Throws:
PacketParseException - if parse error 如果解析出错

JML