Java套接字“成功”连接到端口80上的任何IP

时间:2018-12-29 16:16:04

标签: java sockets

我正在尝试打开远程服务器的套接字,但是如果另一端没有响应,我想抛出一个异常。出于某种原因,我尝试使用PORT 80的任何IP似乎都可以“连接”,即使它是完全随机的IP。

我将尝试通过一个例子来传达这个问题。

这将超时并引发异常:

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE * fptr; //Ρευμα
    char ch;
    fptr = fopen("UNITS.txt", "r");
    if (fptr == NULL)
    {
        printf("Cannot open file \n");
        exit(0);
    }
    // Read contents from file 
    ch = fgetc(fptr);
    while ((ch = fgetc(fptr)) != EOF){
        printf("%c", ch);
    }

    fclose(fptr);
    return 0;
}

另一方面,以下操作将继续正常进行,就好像连接成功一样:

Socket s = new Socket();
s.connect(new InetSocketAddress("1.2.3.4", 81), SOME_TIMEOUT_CONST);

我似乎无法找出原因。

如果这是预期的行为,我该如何检查在情况2中它实际上没有连接?

编辑:我在朋友的PC上运行了相同的代码,两种情况都超时并引发了异常。因此,这可能与我的Mac有关。不知道是什么...

0 个答案:

没有答案