Что такое мультиплексная связь через сокет? - PullRequest
5 голосов
/ 02 апреля 2011

Я искал " мультиплексный сокет " в интернете, но не смог обнаружить разницу между мультиплексным сокетом и нормальным режимом работы сокета.

Обычный сокет такжеможет общаться в обоих направлениях (чтение и запись).

Я думаю, что я должен неправильно понимать концепцию мультиплекса, приветствую ваше мнение о мультиплексной связи, спасибо!

РЕДАКТИРОВАТЬ: Я использую Java дляреализовать мультиплексную розетку.

Ответы [ 3 ]

6 голосов
/ 02 апреля 2011

AFAIK, мультиплексная связь - это совместное использование небольшого количества сокетов (например, одного) для передачи данных для нескольких потоков более высокого уровня, например, темы или очереди.

5 голосов
/ 02 апреля 2011

При мультиплексировании выполняется несколько соединений через один сокет, все сообщения для этих соединений будут приниматься в этом сокете (или отправляться).Так что это не двусторонняя связь, а несколько разных каналов связи, которые обрабатываются одним сокетом.

1 голос
/ 02 апреля 2011

Где вы нашли ссылку на multiplex socket? Я могу придумать два ответа:

Во-первых, используя один UDP socket() и recvfrom(2) для получения пакетов от нескольких клиентов. (Одной из возможностей может быть DNS-сервер BIND в рекурсивном режиме; более старые версии использовали один сокет вместо connect(2) нового сокета для каждого клиента.)

Во-вторых, используя одно соединение для объединения нескольких каналов в один поток; это делается, например, ssh(1) когда вы запрашиваете переадресацию -X X11 или -L или -R переадресацию порта. Вы можете отправлять данные, привязанные к терминалу, X-серверу или удаленным портам, в течение всего одного сеанса TCP.

...