Один против двух сокетов в сетевом программировании - PullRequest
0 голосов
/ 20 декабря 2010

Речь идет о сетевом программировании, точнее о серверах.Давайте предположим, что есть сервер, который обрабатывает много соединений и, следовательно, имеет сокет прослушивания.Очевидно, существует один экземпляр такого сокета, это понятно.Теперь я видел проекты, которые используют (а) один сокет для каждого соединения, как для входящих и исходящих данных, так и (б) два сокета, один для входящих данных, один для исходящих данных.Что делает тот или иной дизайн более предпочтительным?Каковы возможные причины / варианты использования этих двух конструкций?Программы, о которых я говорил, на самом деле были мессенджерами (две из них), но это теоретически применимо к любому серверу с несколькими подключениями (к любому серверу).

Надеюсь, этот вопрос не слишком общий, я неСейчас я много знаю о сетевом программировании, поэтому спрашиваю об этом.Быстрый Гуглинг тоже не помог.

1 Ответ

1 голос
/ 21 декабря 2010

TCP и UDP Сокеты являются полнодуплексными. Нет никакой причины использовать отдельные сокеты для ввода и вывода на один и тот же клиент. Это просто расточительно расходует ресурсы ядра с удвоенной скоростью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...