java中的最大tcp端口号常量

dam*_*ewl 10 java tcp

是否存在java中定义的最大TCP端口号(65535)或Apache Commons等公共库的公共常量,我可以从我的代码中引用(而不是使用硬编码的整数)?

Thi*_*ler 13

我担心没有你可以使用的.

查看Java 8的源代码,我看到Socket该类使用以下代码来验证多个函数中的有效端口:

private static int checkPort(int port) {
    if (port < 0 || port > 0xFFFF)
        throw new IllegalArgumentException("port out of range:" + port);
    return port;
}
Run Code Online (Sandbox Code Playgroud)

这可以在 java.net.InetSocketAddress.checkPort(int)

正如您所看到的,Java本身也不使用命名常量.

搜索代码会显示以下内容java.net.HostPortrange:

static final int PORT_MIN = 0;
static final int PORT_MAX = (1 << 16) -1;
Run Code Online (Sandbox Code Playgroud)

但正如你所看到的,这不是一个公开的参考.另一个私人参考出现了java.net.SocketPermission.

因此,在上面的检查之后,我得出结论,Java API中没有可用的.