类 StandardSocketFactory

    • 字段详细资料

      • host

        protected String host
        The hostname to connect to
      • port

        protected int port
        The port number to connect to
      • rawSocket

        protected Socket rawSocket
        The underlying TCP/IP socket to use
      • sslSocket

        protected Socket sslSocket
        The wrapper for underlying TCP/IP socket
      • loginTimeoutCountdown

        protected int loginTimeoutCountdown
        The remaining login time in milliseconds. Initial value set from defined DriverManager.setLoginTimeout()
      • loginTimeoutCheckTimestamp

        protected long loginTimeoutCheckTimestamp
        Time when last Login Timeout check occurred
      • socketTimeoutBackup

        protected int socketTimeoutBackup
        Backup original Socket timeout to be restored after handshake
    • 构造器详细资料

      • StandardSocketFactory

        public StandardSocketFactory()
    • 方法详细资料

      • createSocket

        protected Socket createSocket​(PropertySet props)
        Create the raw socket.
        参数:
        props - properties available to affect behaviour during socket creation.
        返回:
        socket
      • configureSocket

        protected void configureSocket​(Socket sock,
                                       PropertySet pset)
                                throws SocketException,
                                       IOException
        Configures socket properties based on properties from the connection (tcpNoDelay, snd/rcv buf, traffic class, etc).
        参数:
        sock - socket
        pset - properties
        抛出:
        SocketException - if an error occurs
        IOException - if an error occurs
      • connect

        public <T extends Closeable> T connect​(String hostname,
                                               int portNumber,
                                               PropertySet pset,
                                               int loginTimeout)
                                        throws IOException
        从接口复制的说明: SocketFactory
        Creates a new socket or channel using the given properties. Properties are parsed by the driver from the URL. All properties other than sensitive ones (user and password) are passed to this method. The driver will instantiate the socket factory with the class name given in the property "socketFactory", where the standard is com.mysql.cj.protocol.StandardSocketFactory Implementing classes are responsible for handling synchronization of this method (if needed).
        指定者:
        connect 在接口中 SocketFactory
        类型参数:
        T - result type
        参数:
        hostname - the hostname passed in the URL. It will be a single hostname, as the driver parses multi-hosts (for failover) and calls this method for each host connection attempt.
        portNumber - the port number to connect to (if required).
        pset - properties passed to the driver via the URL and/or properties instance.
        loginTimeout - login timeout in milliseconds
        返回:
        a socket connected to the given host
        抛出:
        IOException - if an I/O error occurs
      • performTlsHandshake

        public <T extends Closeable> T performTlsHandshake​(SocketConnection socketConnection,
                                                           ServerSession serverSession)
                                                    throws IOException
        从接口复制的说明: SocketFactory
        If required, called by the driver during MySQL protocol handshake to transform original socket to SSL socket and perform TLS handshake.
        指定者:
        performTlsHandshake 在接口中 SocketFactory
        类型参数:
        T - result type
        参数:
        socketConnection - current SocketConnection
        serverSession - current ServerSession
        返回:
        SSL socket
        抛出:
        IOException - if an I/O error occurs
      • performTlsHandshake

        public <T extends Closeable> T performTlsHandshake​(SocketConnection socketConnection,
                                                           ServerSession serverSession,
                                                           Log log)
                                                    throws IOException
        从接口复制的说明: SocketFactory
        If required, called by the driver during MySQL protocol handshake to transform original socket to SSL socket and perform TLS handshake.
        指定者:
        performTlsHandshake 在接口中 SocketFactory
        类型参数:
        T - result type
        参数:
        socketConnection - current SocketConnection
        serverSession - current ServerSession
        log - logger
        返回:
        SSL socket
        抛出:
        IOException - if an I/O error occurs
      • afterHandshake

        public void afterHandshake()
                            throws IOException
        从接口复制的说明: SocketFactory
        Called by the driver after completing the MySQL protocol handshake and reading the results of the authentication.
        指定者:
        afterHandshake 在接口中 SocketFactory
        抛出:
        IOException - if an I/O error occurs
      • resetLoginTimeCountdown

        protected void resetLoginTimeCountdown()
                                        throws SocketException
        Decrements elapsed time since last reset from login timeout count down.
        抛出:
        SocketException - If the login timeout is reached or exceeded.
      • getRealTimeout

        protected int getRealTimeout​(int expectedTimeout)
        Validates the connection/socket timeout that must really be used.
        参数:
        expectedTimeout - The timeout to validate.
        返回:
        The timeout to be used.