https://github.com/sea-boat/mysql-protocol
Das ColumnCount-Paket ist eines der Pakete, wenn der Server ResultSet zurückgibt.
Typ | Name | Beschreibung th > | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
int<3> | Payload-Länge | wird entsprechend dem niedrigstwertigen Byte zuerst, 3 Wörter, gespeichert Die Nutzlast der Strophe und die 1-Byte-Sequenznummer werden zu einem Nachrichtenheader zusammengefasst | |||||||||||
int<1> | Seriennummer |
类型 | 名字 | 描述 |
---|---|---|
int<3> | payload长度 | 按照the least significant byte first存储,3个字节的payload和1个字节的序列号组合成报文头 |
int<1> | 序列号 | |
string | payload | 报文体,长度即为前面指定的payload长度 |
Payload
Protocol::LengthEncodedInteger
Weitere Details: http: / /dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::ResultsetRow
/** * * <pre class="brush:php;toolbar:false"><b>column count packet.</b>* @author *
seaboat*
<b>email: </b>849586227@qq.com*
<b>blog: </b>http://www.php.cn/;/pre> * @version 1.0 * @see http://www.php.cn/ */public class ColumnCountPacket extends MySQLPacket { public int columnCount; public void read(byte[] data) { MySQLMessage mm = new MySQLMessage(data); this.packetLength = mm.readUB3(); this.packetId = mm.read(); this.columnCount = (int) mm.readLength(); } @Override public void write(ByteBuffer buffer) { int size = calcPacketSize(); BufferUtil.writeUB3(buffer, size); buffer.put(packetId); BufferUtil.writeLength(buffer, columnCount); } @Override public int calcPacketSize() { int size = BufferUtil.getLength(columnCount); return size; } @Override protected String getPacketInfo() { return "MySQL Column Count Packet"; } }
Das Obige ist ein Detaillierte Einführung in das ColumnCount-Paket von MySQL und den analysierten Inhalt des Protokolls. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!