Сокеты по сравнению с именованными каналами для локального IPC в Windows?

Можно также быть интересно слышать о работе, продолжающейся для Java 7, включающего закрытия:

What’s текущее состояние закрытий в Java?

http://gafter.blogspot.com/2006/08/closures-for-java.html
http://tech.puredanger.com/java7/#closures

20
задан sold 17 November 2009 в 01:43
поделиться

1 ответ

Некоторые тонкие различия:

Сокеты не будут работать для локального IPC, если у вас нет работающего адаптера. Насколько распространено использование ПК без работающего адаптера? Что ж, меня укусило, когда кто-то попытался продемонстрировать наше программное обеспечение покупателю на ноутбуке, который не был подключен к сети или источнику питания (поэтому ОС отключила сетевую карту для экономии энергии), а беспроводной адаптер был отключен (потому что пользователь ноутбука не использовал беспроводную связь). Вы можете обойти это, установив адаптер обратной связи, но это не идеально.

Программное обеспечение межсетевого экрана может вызвать проблемы с установкой соединений TCP / IP. Это не должно быть проблемой для локального IPC, но я не уверен. Именованные каналы также могут иметь брандмауэры.

У вас могут быть проблемы из-за прав, необходимых для создания именованных каналов, или для создания новых экземпляров именованных каналов. Например, я запускал несколько серверов, использующих один и тот же именованный канал (вероятно, не лучшая идея, но это было для тестирования), и некоторые из них не работали в CreateNamedPipe, потому что первый сервер для создания канала работал в режиме администратора (потому что он был запущен из Visual Studio в режиме администратора), в то время как остальные были запущены из командной строки с обычным уровнем UAC.

Хотя статья, упомянутая Рубенсом, в основном посвящена IPC в сети, в ней говорится, что «Локальные именованные каналы работают в ядре. режим и очень быстрый ».

18
ответ дан 30 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: