UNIX Socket: может ли клиент когда-либо читать данные, предназначенные для другого клиента? - PullRequest
0 голосов
/ 15 февраля 2012

Рассмотрим процесс сервера, к которому подключаются несколько клиентских процессов, использующих сокет UNIX в качестве механизма IPC.

Каждый клиентский код выполняется в бесконечном цикле, пытаясь читать и записывать данные из / в сокет.

Мой вопрос: как клиент узнает, что он не читает данные, предназначенные для чтения каким-либо другим процессом?Серверный процесс записывает данные в один сокет, верно?

Для TCP / IP этот вопрос не имеет смысла - сокет будет означать кортеж <remote host, remote port, local host, local port, protocol>, поэтому процессы, работающие на разных компьютерах, пытающихся получить доступ к серверу, никогда не смогут читать данные друг друга.

Но для сокетов UNIX это просто файл, верно?Или я что-то упустил?

1 Ответ

2 голосов
/ 15 февраля 2012
  • На сервере у каждого клиента есть свой сокет.Ясно, что вы не будете читать данные, которые были отправлены другому клиенту.
  • сокет UNIX - это , а не файл, но многие его функции доступны через вызовы API файлов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...