Некоторые тонкие различия:
Сокеты не будут работать для локального IPC, если у вас нет работающего адаптера. Насколько распространен ПК без работающего адаптера? Что ж, меня укусило, когда кто-то пытался продемонстрировать наше программное обеспечение клиенту на ноутбуке, который не был подключен к сети или источнику питания (поэтому ОС отключила сетевую карту для экономии энергии), а беспроводной адаптер был отключен (потому что пользователь ноутбука не использовал беспроводную связь). Вы можете обойти это, установив петлевой адаптер, но это не идеально.
Программное обеспечение брандмауэра может вызвать проблемы с установлением соединений TCP / IP. Это не должно быть проблемой для местного IPC, но я не уверен. Именованные каналы также могут иметь брандмауэры.
У вас могут быть проблемы из-за привилегий, необходимых для создания именованных каналов или для создания новых экземпляров именованных каналов. Например, я запускал несколько серверов, используя один и тот же именованный канал (вероятно, это не очень хорошая идея, но это было для тестирования), и некоторые из них не удалось создать в CreateNamedPipe, поскольку первый сервер, создавший канал, работал в режиме администратора (поскольку он был запущен из Visual Studio в режиме администратора), а остальные были запущены из командной строки с обычным уровнем UAC.
Хотя статья, упомянутая Рубенсом, в основном посвящена IPC по сети, она подчеркивает, что «Локальные именованные каналы работают в режиме ядра и работают очень быстро».