2015-09-29 3 views
2

Я работаю над инструментом, который будет работать несколькими пользователями на одном сервере терминалов. Эти инструменты используют TCP-сокеты для IPC между несколькими процессами. Поскольку несколько экземпляров инструмента будут работать одновременно несколькими зарегистрированными пользователями, я хочу знать, как управлять портами на сервере Windows? Как и в, является ли их концепция виртуальных портов, которые ОС может затем сопоставить с уникальным портом системы, или инструменты, используемые для разных пользователей, должны обрабатывать это в пространстве пользователя?Обработка номеров портов на многопользовательском сервере Windows

+1

Может быть, вы не должны использовать TCP. Используйте именованные каналы, которые имеют лучшую изоляцию пространства имен. – usr

+0

@usr Я использую zmq для IPC. Он не поддерживает именованные каналы в Windows. – Paani

ответ

2

Экземпляры инструмента необходимо прослушивать с разными номерами портов или с одинаковым номером на разных IP-адресах.

[Предполагая, что они слушают вообще, что не указано, но который является единственным реальным источником беспокойства.]

+0

Слушание - не единственная проблема. Любое локальное связывание, будь то для прослушивания или подключения, зависит от доступных портов. –

+0

@RemyLebeau Локальное связывание никогда не требуется, кроме, по-видимому, в некоторых случаях VPN, которые я никогда не обнаружил за 25 лет сетевого программирования. Изменить отклонено. – EJP

+0

Всегда существует локальное связывание, будь то явное из 'bind()' или неявное из 'connect()'. Клиенты и серверы должны быть осторожны с исчерпанием локального порта. И есть ситуации, не связанные с VPN, где клиенту может потребоваться явное связывание (требования к протоколу и т. Д.). –

Смежные вопросы