Что означает подстановочный адрес в InetSocketAddress?

В документах для конструктора InetSocketAddress(int port) говорится:

Создает адрес сокета, где IP-адрес является подстановочным адресом и номер порта - указанное значение.

Что делает подстановочный знак и что это значит при использовании в socket.bind()?

Ответ 1

Из документов: Подстановочный знак - это особый локальный IP-адрес. Обычно это означает "any" и может использоваться только для операций привязки.

Значение этого IP-адреса: 0.0.0.0. Если у вас есть два сетевых адаптера: один с IP-адресом 1.1.1.1 и один с IP-адресом 2.2.2.2, вы можете создать прослушивающий сокет и связать его с 1.1.1.1, чтобы сокет не привязывался к 2.2.2.2. Вы также можете создать прослушивающий сокет и привязать его к 2.2.2.2, чтобы он не привязывался к 1.1.1.1. Если вам все равно и хотите, чтобы ваш сокет привязывался ко всем сетевым картам, вы привязываете его к подстановочному адресу.

Другим специальным значением будет 127.0.0.1, а это означает, что только клиенты на одном компьютере могут подключаться к вашему серверу.

Ответ 2

Маска подстановочных знаков - это маска битов, которая указывает, какие части IP-адреса могут принимать любое значение. В Cisco IOS они используются в нескольких местах, например:

  • Чтобы указать размер сети или подсети для некоторых протоколов маршрутизации, таких как OSPF.
  • Чтобы указать, какие IP-адреса должны быть разрешены или запрещены в списках контроля доступа (ACL).