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