Связывание сокета делается для решения и порт для того, чтобы получить данные по этому гнезду (в большинстве случаев) или использовать этот адрес/порт в качестве источника данных при отправке данных (например, используется с подключениями данных на FTP-сервере).
Обычно на конкретной машине имеется несколько интерфейсов, то есть петля псевдоинтерфейса, где машина может достигать себя, ethernet, WLAN, VPN .... Каждый из этих интерфейсов может иметь несколько назначенных IP-адресов. Например, loopback имеет обычно 127.0.0.1, а IPv6 также :: 1, но вы можете назначить и других. Ethernet или WLAN имеют IP-адреса в локальной сети, т. Е. 172.16.0.34 или что-то еще.
Если вы привязываете сокет для приема данных к определенному адресу, вы можете получать только данные, отправленные на этот конкретный IP-адрес. Например, если вы привязываетесь к 127.0.0.1, вы сможете получать данные из своей собственной системы, но не из какой-либо другой системы в локальной сети, поскольку они не могут отправлять данные в ваш 127.0.0.1: для одного из любых данных 127.0 .0.1 будут отправлены в их собственный 127.0.0.1, а второй ваш 127.0.0.1 - это адрес вашего внутреннего интерфейса обратной петли, который недоступен извне.
Вы также можете привязать сокет к общему адресу, например 0.0.0.0` (Ipv4) и :: (Ipv6). В этом случае он не привязан к определенному IP-адресу, но сможет принимать данные для отправки на любой IP-адрес устройства.
Для моих собственных (и будущих читателей) более поздней ссылки: [эта страница] (https://technet.microsoft.com/en-us/magazine/ad9db381-1e1b-4077-be1c-bcefb11f1ea8). – Mehrdad
Какая ссылка содержит страница? Он вообще не упоминает привязки. – LarsH
@LarsH: Я не помню конкретной причины, по которой я разместил ее здесь, если честно, но я предполагаю, что причина в том, что вы привязываетесь к адресу, который не относится к вашей собственной машине, что страница рассказывает о. – Mehrdad