Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java connect(本地主机)引发异常,connect(专用地址)块_Java_Eclipse_Sockets_Nio_Connect - Fatal编程技术网

Java connect(本地主机)引发异常,connect(专用地址)块

Java connect(本地主机)引发异常,connect(专用地址)块,java,eclipse,sockets,nio,connect,Java,Eclipse,Sockets,Nio,Connect,以下代码在我尝试使用localhost 172.0.0.1运行它时引发异常:java.net.ConnectException:Connection拒绝:connect channel = SocketChannel.open(); //172.0.0.1 is a non-existing server channel.connect(new InetSocketAddress("172.0.0.1", 4342)); 但是,以下代码会一直阻塞,直到我使用专用地址运行它时超时: chann

以下代码在我尝试使用localhost 172.0.0.1运行它时引发异常:java.net.ConnectException:Connection拒绝:connect

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));
我想问一下,为什么连接到本地主机会导致connect抛出异常,而连接到专用地址会被阻止


我问这个问题是因为我希望connect()在启动localhost服务器时被阻塞,而connect()会在服务器启动时自动连接到服务器

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


谢谢!

连接被拒绝意味着目标服务器主动拒绝连接,因为没有服务器侦听该端口

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


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

为什么?因为在您的网络环境中,这是正确的做法。我之所以这样做,是因为我希望在启动localhost服务器时connect()会被阻止,并且connect()会在服务器启动时自动连接到服务器。有没有办法使connect()阻塞本地主机地址?192.0.0.1不是私有的,它和172.0.0.1都不是本地主机。