5
我想实现的目标哪个临时端口有java InetSocketAddress绑定?
将服务器绑定到临时端口以进行单元测试。
我的问题:
使用JDK 1.5.0_22我尝试使用端口0按照javadoc的临时端口绑定上的的InetSocketAddress但我不能找到地址对象的方式来知道该端口已经绑定到了,所以我不能有相应的配置,我的客户:
InetSocketAddress address = new InetSocketAddress(0);
assertThat(address.isUnresolved(), is(false));
assertThat(address.getPort(), is(0));
我可能不明白正确的Javadoc一句:
有效端口值是0和65535之间的零端口号将 让系统拾取临时端口在绑定操作。
但检查甚至有我的服务器监听套接字之后的端口不返回任何东西,但0(以下使用http://simpleweb.sourceforge.net/库)(我假设发生了那么绑定):
Container httpServer = new Container() {
public void handle(Request req, Response resp) {
}
};
SocketConnection connection = new SocketConnection(httpServer);
InetSocketAddress address = new InetSocketAddress(0);
connection.connect(address);
assertThat(address.isUnresolved(), is(false));
assertThat(address.getPort(), is(0));
用nmap的我甚至不看绑定端口,因此我假设我的理解是不正确。任何帮助?
NMAP从“外部”的作品,并受防火墙和诸如此类的东西。要检查同一台机器上的端口绑定,请使用“netstat”,而不是直接查询TCP堆栈,而不是戳和刺激。 –