Когда `[::]` или `0.0.0.0` означают эту сеть и когда этот хост? [дубликат]

Для большинства случаев использования flock очень важно, чтобы файл блокировки не был "очищен". В противном случае представьте такой сценарий:

  • процесс A открывает файл блокировки, обнаруживает, что он не существует, и создает его.
  • процесс A получает блокировку
  • процесс B открывает блокировку (обнаруживает, что она уже существует)
  • процесс B пытается получить блокировку, но вынужден ждать
  • процесс A снимает блокировку
  • процесс B получает блокировку блокировка мгновенно
  • процесс A удаляет файл блокировки
  • процесс C открывает файл блокировки, обнаруживает, что он не существует, поэтому создает новый. Обратите внимание, что теперь он держит открытым другой файл блокировки, который заблокировал процесс B.
  • процесс C пытается получить блокировку и преуспевает... но он должен был ждать, потому что процесс B все еще имеет [предыдущее воплощение] файл блокировки, открытый и заблокированный.
0
22.03.2019, 18:22
2 ответа

В приведенном вами выводе netstat«0.0.0.0» и «[::]» не означают «этот хост», они означают, что рассматриваемые службы прослушивают «все интерфейсы на этом хозяин". Таким образом, эти порты открыты для подключения любого хоста, включая локальный хост.

2
28.01.2020, 02:18

[::]и 0.0.0.0лучше рассматривать как «Null» из других областей вычислений. В зависимости от контекста это может означать «ничего», «не знаю», «все равно» или иногда «ошибка». Это значение действительно зависит от контекста.

IP-адреса могут использоваться для представления сети или хоста. Например, 192.168.1.1 — это хост на 192.168.1.0 /24. То, что он представляет, полностью зависит от того, что ожидало получить программное обеспечение.

When it means this host, does it mean all the network interfaces on this host, or just one specified network interface on this host?

Когда речь идет о привязанных (слушающих )сокетах, это означает «неважно», какой IP. Но это ограничено только IP-адресами текущего хоста, поэтому на практике соединения будут приниматься на любом интерфейсе, адресованном любому IP-адресу текущего хоста.

2
28.01.2020, 02:18

Теги

Похожие вопросы