Java套接字连接在连接到未知IP地址时获得成功。。。为什么?

Java套接字连接在连接到未知IP地址时获得成功。。。为什么?,java,sockets,connection,Java,Sockets,Connection,我想通过TCP连接到给定IP地址和端口的机器。 我决定使用JAVA.net.Socket类及其connect方法,因为它似乎适合我的需要 出于测试目的,由于我需要测试的机器还不可用,我尝试在其标准端口80上连接一台本地机器 但我非常惊讶地看到,它在任何IP地址上都成功了,即使是一个未知的IP地址:我不能“ping”它,但连接方法让我成功了 我在JAVA套接字理解中遗漏了什么吗? 这种行为怎么可能 这是我的密码: private void testSocketConnection() {

我想通过TCP连接到给定IP地址和端口的机器。 我决定使用JAVA.net.Socket类及其connect方法,因为它似乎适合我的需要

出于测试目的,由于我需要测试的机器还不可用,我尝试在其标准端口80上连接一台本地机器

但我非常惊讶地看到,它在任何IP地址上都成功了,即使是一个未知的IP地址:我不能“ping”它,但连接方法让我成功了

我在JAVA套接字理解中遗漏了什么吗? 这种行为怎么可能

这是我的密码:

    private void testSocketConnection() {
    try (Socket socketToMachine = new Socket()) {
        InetSocketAddress address = new InetSocketAddress(InetAddress.getByName("1.2.3.4"), 80);
        socketToMachine.connect(address, 1000);
        System.out.println("SUCCESS");
    } catch (UnknownHostException uhe) {
        System.out.println("UnknownHostException");
    } catch (IOException ioe) {
        System.out.println("IOException");
    }
}

我尝试了你的代码,它运行良好,抛出未知地址的连接异常。该死的。。。是否有可能我有一个本地配置或使任何IP“已知”和“可访问”的东西?我真的不明白为什么我的代码总是有“成功”的结果…尝试使用一些格式错误的ip地址格式使用InetAddress.getByName(“1x.2.3.4”)给我“UnknownHostException”/“使用InetAddress.getByName(“java.sun.com”)给我“成功”/“使用InetAddress.getByName(“java.sunnn.com”)给我“UnknownHostException”使用提供IP地址作为主机名的InetAddress.getByName(主机名)方法是否正确?我没有找到任何其他方法从字符串IP地址获取InetAddress类。。。