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() 阻塞本地主机地址?
谢谢!
连接被拒绝表示目标服务器主动拒绝连接,因为没有服务器在该端口上侦听。
当客户端没有收到服务器响应时发生超时,例如服务器根本不存在,流量被某些防火墙等阻止
没有什么比尝试连接并在端口被占用时向我发送响应更好的了。您必须在客户端实施重试。
以下代码在我尝试使用本地主机 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() 阻塞本地主机地址?
谢谢!
连接被拒绝表示目标服务器主动拒绝连接,因为没有服务器在该端口上侦听。
当客户端没有收到服务器响应时发生超时,例如服务器根本不存在,流量被某些防火墙等阻止
没有什么比尝试连接并在端口被占用时向我发送响应更好的了。您必须在客户端实施重试。