gpt4 book ai didi

sockets - 将套接字绑定(bind)到本地主机以外的任何地址是什么意思?

转载 作者:行者123 更新时间:2023-12-03 11:50:55 24 4
gpt4 key购买 nike

我不明白 bind 是什么意思指向除 127.0.0.1(或::1 等)以外的任何地址的套接字。
我不是——根据定义——将套接字绑定(bind)到 上的端口吗?我自己的机器..哪个是本地主机?
绑定(bind)或监听另一台机器或 IP 地址的端口有什么意义?
从概念上讲,这对我来说没有意义!

(事实证明这对谷歌来说非常困难......可能是因为我没有在谷歌上搜索正确的条款。)

最佳答案

将套接字绑定(bind)到地址和端口,以便在此套接字上接收数据(大多数情况)或在发送数据时使用此地址/端口作为数据源(例如与 FTP 服务器中的数据连接一起使用)。

通常在特定机器上有几个接口(interface),即机器可以到达自己的伪接口(interface)环回,以太网,WLAN,VPN......。这些接口(interface)中的每一个都可以分配多个 IP 地址。例如,环回通常有 127.0.0.1,而 IPv6 也有::1,但您也可以分配其他人。以太网或 WLAN 具有本地网络上的 IP 地址,即 172.16.0.34 或其他。

如果将用于接收数据的套接字绑定(bind)到特定地址,则只能接收发送到该特定 IP 地址的数据。例如,如果您绑定(bind)到 127.0.0.1,您将能够从您自己的系统接收数据,但不能从本地网络上的其他系统接收数据,因为它们无法将数据发送到您的 127.0.0.1:对于任何数据到 127.0。 0.1 将被发送到他们自己的 127.0.0.1,其次您的 127.0.0.1 是您内部环回接口(interface)上的一个地址,从外部无法访问。

您还可以将套接字绑定(bind)到包罗万象的地址,例如 0.0.0.0 (Ipv4) 和::(Ipv6)。在这种情况下,它不会绑定(bind)到特定的 IP 地址,但能够接收发送到机器任何 IP 地址的数据。

关于sockets - 将套接字绑定(bind)到本地主机以外的任何地址是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39314086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com