【问题标题】:What IP java use when provide 0.0.0.0 as localAddress in Socket在 Socket 中提供 0.0.0.0 作为 localAddress 时,java 使用什么 IP
【发布时间】:2015-03-17 02:58:54
【问题描述】:

在java中建立TCP连接,我们需要创建socket。 我使用下面的构造函数来创建套接字。 public Socket(InetAddress address, int port,InetAddress localAddr,int localPort) throws IOException

根据 java API,localAddress 应该是有效的 InetAddress 或 null。当我提供0.0.0.0 作为本地地址时,它将正常工作以在本地机器上建立连接,例如27.0.0.1 以及远程机器上。

要在本地机器上连接,Socket 使用127.0.0.1,对于远程机器,socket 使用P1P1 接口地址作为本地地址。 我不知道java如何设法找到合适的IP地址进行连接。我查看了 java API,但没有找到任何东西。

【问题讨论】:

标签: java sockets


【解决方案1】:

Java 不使用任何东西。它将您提供的内容直接传递给操作系统。我不相信0.0.0.0 是连接套接字的有效本地地址,但如果它是INADDR_ANY,则意味着“使用任何本地 IO 地址”。

在连接 TCP 套接字时需要指定本地地址或端口的情况很少。只需使用两个参数的构造函数。

【讨论】:

    猜你喜欢
    • 2017-07-30
    • 2017-04-10
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 2015-04-28
    • 2020-08-19
    • 1970-01-01
    • 2015-01-30
    相关资源
    最近更新 更多