java - 如何从 MySQL JDBC 驱动程序获取客户端本地套接字端口?

标签 java mysql jdbc tcp port

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

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

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

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

最佳答案

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

实际连接到MySQL Server的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();

祝你好运。

关于java - 如何从 MySQL JDBC 驱动程序获取客户端本地套接字端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34402697/

相关文章:

java - Solaris:与 ZFS 一起使用的虚拟片/磁盘

mysql - 将数据插入表并使用该数据创建 View

java - 我该如何解决这个 Java Jdbc 连接错误?

php - 调用变量 php/mysql

java - 如何使用 PostgreSQL JDBC 在不启动事务的情况下执行 sql 查询?

oracle - 来自环境变量的钱包位置,而不是用于 oci 客户端的 sqlnet.ora

Java泛型问题

java - 使用正则表达式从 HTML 标签中抓取文本

java - Java 中带有 try 的 finally 方法

mysql - 设计数据库时,如果出现类似类型的项目,我们可以将两者合并到一个表中吗?