Home > Database > Mysql Tutorial > body text

Detailed introduction to the EOF package and analysis of the mysql protocol

黄舟
Release: 2017-03-07 13:57:03
Original
2167 people have browsed it

git

https://github.com/sea-boat/mysql-protocol

Overview

MySQL's EOF package is used to indicate the end of query results.

mysql communication message structure

##string payloadMessage body, the length is the previously specified payload length
Type Name Description
int<3> payload length Stored according to the least significant byte first, 3-byte payload and 1-byte sequence number combination Into the message header
int<1> sequence number
EOF packet

Payload

Type    Name    Description
int<1>  header  [fe] EOF header
if capabilities & CLIENT_PROTOCOL_41 {  
int<2>    warnings    number of warnings  
int<2>    status_flags    Status Flags
}
Copy after login

More details: http://dev.mysql.com/doc/internals/en/packet-EOF_Packet.html

EOF package Operation

  1. EOF package class

  2. /**
     * 
     * <pre class="brush:php;toolbar:false"><b>mysql eof 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 EOFPacket extends MySQLPacket {
    
        public byte header = (byte) 0xfe;    
        public int warningCount;    
        public int status = 2;    
        @Override
        public void read(byte[] data) {
            MySQLMessage mm = new MySQLMessage(data);
            packetLength = mm.readUB3();
            packetId = mm.read();
            header = mm.read();
            warningCount = mm.readUB2();
            status = mm.readUB2();
        }    @Override
        public void write(ByteBuffer buffer) {        
        int size = calcPacketSize();
            BufferUtil.writeUB3(buffer, size);
            buffer.put(packetId);
            buffer.put(header);
            BufferUtil.writeUB2(buffer, warningCount);
            BufferUtil.writeUB2(buffer, status);
        }    @Override
        public int calcPacketSize() {        
        return 5;
        }    
        @Override
        protected String getPacketInfo() {        
        return "MySQL EOF Packet";
        }
    
    }
    Copy after login
    The above is a detailed introduction to the EOF package and analysis of the mysql protocol. For more related content, please pay attention to PHP Chinese website (www.php.cn)!



Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!