【问题标题】:How to obtain the client local socket port from MySQL JDBC driver?如何从 MySQL JDBC 驱动程序获取客户端本地套接字端口?
【发布时间】:2016-03-27 22:36:03
【问题描述】:

我有一个 Java 应用程序,我在其中使用 "com.mysql.jdbc.Driver" 连接到 mySQL Server。

连接建立后,我需要Client本地端口。这意味着 Java 应用程序从 MySQL 服务器接收数据的端口。

建立连接后,有没有办法在我自己的源代码中接收它?

我尝试了java.sql.DatabaseMetaData中的所有信息。

【问题讨论】:

  • 关于套接字的瞬态信息不是数据库元数据。你需要什么?

标签: java mysql jdbc tcp port


【解决方案1】:

对于MySQL Connector/J there's sources on github

连接到 MySQL 服务器的实际 Socket 在MysqlIO 中定义为

public Socket mysqlConnection = null;

ConnectionImpl 类包含一个 getter:

public MysqlIO getIO() throws SQLException

因此,如果您设法将 Connection 转换为 ConnectionImpl(尚未检查),您可以这样做:

ConnectionImpl impl = (ConnectionImpl)con;
Socket sock = impl.getIO().mysqlConnection;
int localPort = sock.getLocalPort();

祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-14
    • 2011-01-30
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2012-06-12
    • 2012-12-02
    相关资源
    最近更新 更多