connect(localhost) 抛出异常,connect(private address) 块

connect(localhost) throws exception, connect(private address) blocks

以下代码在我尝试使用本地主机 172.0.0.1 运行 时抛出异常:java.net.ConnectException:连接被拒绝:连接

channel = SocketChannel.open();
//172.0.0.1 is a non-existing server 
channel.connect(new InetSocketAddress("172.0.0.1", 4342));

但是,当我 运行 使用私有地址时,以下代码会阻塞直到超时:

channel = SocketChannel.open();
//192.168.0.1 is a non-existing server 
channel.connect(new InetSocketAddress("192.168.0.1", 4342));

请问为什么连接localhost会抛异常,连接私有地址会阻塞?

我问这个是因为我希望 connect() 在启动本地主机服务器时阻塞,并且 connect() 会在服务器启动时自动连接到服务器。

有没有办法让 connect() 阻塞本地主机地址?

谢谢!

连接被拒绝表示目标服务器主动拒绝连接,因为没有服务器在该端口上侦听。

当客户端没有收到服务器响应时发生超时,例如服务器根本不存在,流量被某些防火墙等阻止

没有什么比尝试连接并在端口被占用时向我发送响应更好的了。您必须在客户端实施重试。