在Java或常用库(如Apache Commons)中,是否有公共常量来定义最大TCP端口号(65535),我可以在我的代码中引用它(而不是使用硬编码的整数)?
在Java或常用库(如Apache Commons)中,是否有公共常量来定义最大TCP端口号(65535),我可以在我的代码中引用它(而不是使用硬编码的整数)?
恐怕你没有可以使用的。
查看Java 8的源代码,我发现Socket
类在多个函数中用以下代码来验证有效端口:
private static int checkPort(int port) {
if (port < 0 || port > 0xFFFF)
throw new IllegalArgumentException("port out of range:" + port);
return port;
}
这可以在java.net.InetSocketAddress.checkPort(int)
中找到。
正如您所看到的,Java本身也没有使用命名常量。
代码搜索在java.net.HostPortrange
中找到以下结果:
static final int PORT_MIN = 0;
static final int PORT_MAX = (1 << 16) -1;
但是你可以看到这不是一个公共的参考。在java.net.SocketPermission
中出现了另一个私有参考。
所以经过上面的检查,我得出结论:Java API中没有可用的。