【问题标题】:Relation between port and IP address端口和IP地址的关系
【发布时间】:2010-05-30 07:03:19
【问题描述】:

我的问题是,如果机器 A 有两个 IP 地址 X,Y。

是否可以两次打开80端口,比如X:80Y:80

说,端口是机器唯一的还是IP唯一的?

【问题讨论】:

  • 应该在 serverfault.com 上,但对于处理这类事情的程序员来说,这是一个有趣的问题。 :)

标签: port ip


【解决方案1】:

IP 地址指定了一个网络接口(想想您计算机上的以太网端口或您的 WiFi 连接)。端口号指定将到达给定网络接口的消息路由到的进程。因此,您可以使用具有不同 IP 地址的相同端口号,因为它们指定了在该给定接口上侦听的端口。但请注意,如果在调用 bind 函数时使用 SO_REUSEADDR 选项,您甚至可以重用具有相同 IP 地址的端口号。

【讨论】:

    【解决方案2】:

    IP 是唯一的。当您bind(这是重要 部分)时,您绑定到 IP 和端口号,而不是机器和端口号。要绑定到所有地址,您可以使用 INADDR_ANY 之类的东西。

    如果您只想绑定到几个地址,则必须“手动”进行。当操作系统收到一个数据包时,它首先检查他是目的地。然后它将它转发给具有requested(通过绑定、通过连接等)的程序,他是具有该特定 IP 和端口号的数据包的目的地。

    【讨论】:

      【解决方案3】:

      端口和 IP 具有 1 对 1 的映射关系。

      所以,是的,您可以在同一台机器上的两个不同 IP 上打开端口 80。

      【讨论】:

        猜你喜欢
        • 2014-03-14
        • 2010-10-30
        • 2021-12-11
        • 2017-10-21
        • 2014-12-29
        • 1970-01-01
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多