net.sf.jqql.packets.out
Class GroupDataOpPacket
java.lang.Object
net.sf.jqql.packets.Packet
net.sf.jqql.packets.OutPacket
net.sf.jqql.packets.BasicOutPacket
net.sf.jqql.packets.out.GroupDataOpPacket
public class GroupDataOpPacket
- extends BasicOutPacket
upload, download grouping name message packet, format:
1. head
2. operation mode byte, if it's 0x2, it's upload group name. If it's 0x1, download groupname.
If it's 0x2, part behind are:
i. group sequence, qq default group, like my friend, sequence 0, other groups begin with 1, 1 byte.
Notice, this doesn't include my friend group, for it's the default QQ group, not necessary to upload
its name.
ii. 16 byte group name. If the group name length is less than 16 byte, fill 0 in the back. 16 byte length is
because the length of QQ group name is at most 8 Chinese word long.
iii. If there are more groups, repeat part i, ii
If ti's 0x1, part behind are:
i. unknwon byte 0x2
ii. 4 unknown byte, all 0.
3. tail
ä¸Šä¼ ä¸‹è½½åˆ†ç»„åå—的消æ¯åŒ…ï¼Œæ ¼å¼ä¸º
1. 头部
2. æ“作方å¼å—节,如果为0x2ï¼Œä¸ºä¸Šä¼ ç»„å,如果为0x1,为请求下载组å
如果为0x2,åŽé¢çš„部分为
i. 组åºå·ï¼Œqq缺çœçš„组,比如我的好å‹ï¼Œåºå·æ˜¯0ï¼Œå…¶ä»–æˆ‘ä»¬è‡ªå·±æ·»åŠ çš„ç»„ï¼Œä»Ž1开始,一个å—节。
ä½†æ˜¯è¦æ³¨æ„的是,这里ä¸åŒ…括我的好å‹ç»„ï¼Œå› ä¸ºæˆ‘çš„å¥½å‹ç»„是QQ的缺çœç»„ï¼Œæ— éœ€ä¸Šä¼ åç§°
ii. 16个å—节的组å,如果组å长度少于16个å—节,åŽé¢çš„å¡«0。之所以是16ä¸ªï¼Œæ˜¯å› ä¸ºQQ的组å长度最多8个汉å—
iii. 如果有更多组,é‡å¤i,ii部分
如果为0x1,åŽé¢çš„部分为
i. 未知å—节0x2
ii. 4个未知å—节,全0
3. 尾部
This packet doesn't limit the group name added, or the first group should be my friend group.
They are implemented in the upper program. Of cource, it's not necessary to have my friend group as the first group.
These client trick is played with as what you want.
这个包没有é™åˆ¶æ·»åŠ çš„ç»„åå«ä»€ä¹ˆï¼Œä¹Ÿæ²¡æœ‰æ˜Žç¡®è§„定第一个组必须是
我的好å‹ç»„,这些规范需è¦åœ¨ä¸Šå±‚程åºä¸å®žçŽ°ã€‚å½“ç„¶ä¹Ÿå¯ä»¥ä¸ä¸€å®šéžè¦ç¬¬ä¸€ä¸ªç»„是
我的好å‹ç»„,这些客户端的trickéšä¾¿ä½ 怎么æž
each upload should upload all the group name.
æ¯æ¬¡ä¸Šä¼ éƒ½å¿…é¡»ä¸Šä¼ æ‰€æœ‰ç»„å
- Author:
- luma
Fields inherited from class net.sf.jqql.packets.Packet |
bodyBuf, bodyDecrypted, command, crypter, ds, duplicated, header, log, sequence, source, user |
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 |
GroupDataOpPacket
public GroupDataOpPacket(QQUser user)
- constructor
æž„é€ å‡½æ•°
GroupDataOpPacket
public GroupDataOpPacket(ByteBuffer buf,
int length,
QQUser user)
throws PacketParseException
- Parameters:
buf
- length
-
- Throws:
PacketParseException
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
getType
public byte getType()
- Returns:
- Returns the type.
setType
public void setType(byte type)
- Parameters:
type
- The type to set.
getGroups
public List<String> getGroups()
- Returns:
- Returns the groups.
setGroups
public void setGroups(List<String> groups)
- Parameters:
groups
- The groups to set.