代码之家  ›  专栏  ›  技术社区  ›  vladwoguer

为什么JDBC将端口0视为空(默认)端口?

  •  0
  • vladwoguer  · 技术社区  · 8 年前

    在我开发的系统中,我必须连接不同主机和端口上的多个数据库,问题是: 我试图通过jdbc连接到达jdbc:mariadb://127.0.0.1:3306/testdb,一切都很好,但我也可以通过jdbc:mariadb://127.0.0.1:0/testdb,连接仍然有效。

    阅读JDBC文档: https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

    我发现“host:port是托管数据库的计算机的主机名和端口号。如果未指定,主机和端口的默认值分别为127.0.0.1和3306。”

    但是端口被指定为零。 我应该忽略零作为端口吗?

    2 回复  |  直到 8 年前
        1
  •  2
  •   Gord Thompson    8 年前

    端口0是保留端口,不可用于常规用途。(参考: here ,通过 here ). 显然,MariaDB JDBC驱动程序认识到这一点,如果指定了端口0,则只使用默认端口值(3306)。

        2
  •  0
  •   Aymane Naouadir    8 年前

    不,您不应该忽略0,因为您的服务器仍在使用端口0。因为您的计算机中的端口号0没有被保留。但在其他计算机中是为应用程序保留的。 端口号的范围从0到65535。