Именованные каналы против UDP для IPC в Windows - PullRequest
4 голосов
/ 27 июня 2011

Почему именованные каналы предпочтительнее для IPC (межпроцессное взаимодействие) на локальном компьютере Windows через UDP? Или UDP иногда может быть где-то лучше?

1 Ответ

5 голосов
/ 27 июня 2011

UDP-пакеты даже на локальном хосте могут быть потеряны. Кроме того, поскольку UDP основан на дейтаграммах и не имеет гарантированной доставки, трудно передавать большие блоки данных. Наконец, UDP на локальном хосте иногда блокируется браузерами. В общем, UDP обычно даже не рассматривается для IPC с одним компьютером.

В Windows я рекомендую отображаемые в память файлы + примитивы синхронизации как самый быстрый и, вероятно, самый простой метод. Именованные каналы обычно работают хорошо, когда вы управляете ими для работы, но я вижу здесь много вопросов относительно того, как заставить именованные каналы работать вообще (и я еще не видел ни одной жалобы относительно MMF).

У нас есть продукт MsgConnect, который предоставляет транспорты на основе сокетов, UDP и MMF, подходящие для IPC локально или через сеть, поэтому у меня есть практический опыт в этой теме. Именованные каналы были рассмотрены для поддержки, но затем идея была отвергнута в пользу других механизмов.

...