龙虎赌博组件之间的响应和请求消息中存在标头和数据长度。 需要确定消息的长度。
<HEADER> - "ZBXD\x01" (5 bytes)
<DATALEN> - data length (8 bytes). 1 will be formatted as 01/00/00/00/00/00/00/00 (eight bytes, 64 bit number in little-endian format)
为了不耗尽内存(可能),窜补产产颈虫协议仅限于在一个连接中仅接受128惭叠。
以下是显示如何将窜补产产颈虫协议标头添加到的代码段 data
你 想要 发送以获取 packet
你 必须 发送到窜补产产颈虫以便正确解释。
Language | Code |
---|---|
bash | printf -v LENGTH '%016x' "${#DATA}"PACK=""for i in {14..0..-2}; do PACK="$PACK\\x${LENGTH:$i:2}"; doneprintf "ZBXD\1$PACK%s" $DATA |
Java | byte[] header = new byte[] {'Z', 'B', 'X', 'D', '\1',(byte)(data.length & 0xFF),(byte)((data.length >> 8) & 0xFF),(byte)((data.length >> 16) & 0xFF),(byte)((data.length >> 24) & 0xFF),'\0', '\0', '\0', '\0'};| |<|byte[] packet = new byte[header.length + data.length];System.arraycopy(header, 0, packet, 0, header.length);System.arraycopy(data, 0, packet, header.length, data.length); |
PHP | $packet = "ZBXD\1" . pack('P', strlen($data)) . $data; or$packet = "ZBXD\1" . pack('V', strlen($data)) . "\0\0\0\0" . $data; |
Perl | my $packet = "ZBXD\1" . pack('<Q', length($data)) . $data; ormy $packet = "ZBXD\1" . pack('V', length($data)) . "\0\0\0\0" . $data; |
Python | packet = "ZBXD\1" + struct.pack('<Q', len(data)) + data |
Header and data length are present in response and request messages between 龙虎赌博 components. It is required to determine the length of message.
<HEADER> - "ZBXD\x01" (5 bytes)
<DATALEN> - data length (8 bytes). 1 will be formatted as 01/00/00/00/00/00/00/00 (eight bytes, 64 bit number in little-endian format)
To not exhaust memory (potentially) 龙虎赌博 protocol is limited to accept only 128MB in one connection.
Here are code snippets showing how to add 龙虎赌博 protocol header to the data
you want to send in order to obtain packet
you should send to 龙虎赌博 so it is interpreted correctly.
Language | Code |
---|---|
bash | printf -v LENGTH '%016x' "${#DATA}"PACK=""for i in {14..0..-2}; do PACK="$PACK\\x${LENGTH:$i:2}"; doneprintf "ZBXD\1$PACK%s" $DATA |
Java | byte[] header = new byte[] {'Z', 'B', 'X', 'D', '\1',(byte)(data.length & 0xFF),(byte)((data.length >> 8) & 0xFF),(byte)((data.length >> 16) & 0xFF),(byte)((data.length >> 24) & 0xFF),'\0', '\0', '\0', '\0'};| |<|byte[] packet = new byte[header.length + data.length];System.arraycopy(header, 0, packet, 0, header.length);System.arraycopy(data, 0, packet, header.length, data.length); |
PHP | $packet = "ZBXD\1" . pack('P', strlen($data)) . $data; or$packet = "ZBXD\1" . pack('V', strlen($data)) . "\0\0\0\0" . $data; |
Perl | my $packet = "ZBXD\1" . pack('<Q', length($data)) . $data; ormy $packet = "ZBXD\1" . pack('V', length($data)) . "\0\0\0\0" . $data; |
Python | packet = "ZBXD\1" + struct.pack('<Q', len(data)) + data |