我的问题是,如果机器A有两个IP地址X,Y。
可以打开端口80两次,例如X:80
和Y:80
吗?
说,端口是机器还是IP唯一的?
答案 0 :(得分:6)
IP地址指定网络接口(考虑计算机上的以太网端口或WiFi连接)。端口号指定路由到达给定网络接口的消息的进程。因此,您可以使用具有不同IP地址的相同端口号,因为它们指定要在该给定接口上侦听的端口。但请注意,如果在调用bind函数时使用SO_REUSEADDR选项,则甚至可以重用具有相同IP地址的端口号。
答案 1 :(得分:3)
IP是独一无二的。当您bind
(即重要部分)时,您绑定到IP和端口号,而不是机器和端口号。要绑定到所有地址,您可以使用INADDR_ANY
。
如果您只想绑定到几个地址,则必须“手动”执行此操作。当OS接收到数据包时,它首先检查他是否为目的地。然后它将它转发到具有requested
(通过绑定,通过连接等)的程序,该程序是具有该特定IP和端口号的数据包的目的地。
答案 2 :(得分:1)
端口和IP具有1对1映射。
所以,是的,你可以在同一台机器上的两个不同的IP上打开端口80。