IPv4 和 IPv6 中的端口号是 16 位无符号二进制数,因此每个都在 1 到 65535 的范围内(0 是保留的)
Port Numbers in IPv4 & IPv6 is 16bits unsigned binary number so, each one is in range of 1 to 65535 (0 is reserved)
我们都知道 IPv4 和 IPv6 中的端口号是 16 位宽,所以范围应该是 0 到 65535,但我听说 0 被排除在外并保留给其他东西,这个范围现在是 1 到 65535。
我想知道保留它的目的是什么?
根据this article:
Port 0 is a wildcard port that tells the system to find a suitable port number.
端口 0 用作 "wildcard" 端口,这意味着当应用程序尝试创建套接字并将其 bind()
连接到 IP 地址,并提供 0 作为端口时,OS 自动将套接字绑定到随机可用的临时端口。
这在应用程序需要发送数据而不关心从哪个端口发送时很有用。这确保了应用程序不需要不断尝试手动寻找合适的端口。
OS 功能强大,让它为您完成(部分)工作。
我们都知道 IPv4 和 IPv6 中的端口号是 16 位宽,所以范围应该是 0 到 65535,但我听说 0 被排除在外并保留给其他东西,这个范围现在是 1 到 65535。
我想知道保留它的目的是什么?
根据this article:
Port 0 is a wildcard port that tells the system to find a suitable port number.
端口 0 用作 "wildcard" 端口,这意味着当应用程序尝试创建套接字并将其 bind()
连接到 IP 地址,并提供 0 作为端口时,OS 自动将套接字绑定到随机可用的临时端口。
这在应用程序需要发送数据而不关心从哪个端口发送时很有用。这确保了应用程序不需要不断尝试手动寻找合适的端口。
OS 功能强大,让它为您完成(部分)工作。