При использовании Netty , Я был удивлен тем, что если я использую опцию reuseAddress, она позволяет ServerSocket связываться с тем же адресом, не вызывая «уже привязанное исключение»
ServerBootstrap bootstrap = new ServerBootstrap(
new NioServerSocketChannelFactory(Executors
.newCachedThreadPool(), Executors.newCachedThreadPool()));
bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
@Override
public ChannelPipeline getPipeline() throws Exception {
ChannelPipeline p = pipeline();
p.addLast("handler", new DummyHandler());
return p;
}
});
bootstrap.setOption("reuseAddress", true);
bootstrap.bind(new InetSocketAddress(2000));
bootstrap.bind(new InetSocketAddress(2000));
. Я просто подумал, что reuseAddress позволяет новому сокету повторно использовать сокет с закрытым ожиданием, но это отличается. Ниже приводится результат выполнения команды netstat
C:\Users\secmask>netstat -a -n|grep 2000
TCP 0.0.0.0:2000 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2000 0.0.0.0:0 LISTENING
Я что-то упускаю? Что происходит?