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

时间:2015-12-21 19:11:00

标签: java mysql jdbc tcp port

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

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

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

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

1 个答案:

答案 0 :(得分:0)

MySQL Connector/J there's sources on github

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

public Socket mysqlConnection = null;

班级ConnectionImpl包含一个吸气剂:

public MysqlIO getIO() throws SQLException

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

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

祝你好运。