Все IPC могут быть использованы в среде TS - вам просто нужно быть умным в именовании объектов, чтобы достичь требуемого конечного результата. Использование сокетов сложнее, но это можно сделать. Я перечислил несколько методов ниже.
Для объектов IPC, которые могут быть названы (Pipe, Event, Mutex, Memory Mapped File и т. Д.), Включающих идентификатор сеанса в имя объекта, будет достигнута виртуализация .
Для дальнейшей блокировки объекта IPC используйте атрибуты безопасности объекта, чтобы предотвратить возможность доступа любого другого пользователя к объекту IPC. Это может произойти случайно в результате ошибки или злонамеренно другого пользователя на сервере терминалов.
Аналогичным образом используйте идентификатор авторизованного пользователя в имени объекта IPC. В C ++ см. MSDN для GetTokenInformation Использование TokenStatistics для класса TokenInformationClass. Я уверен, что есть эквивалентный метод .NET. Снова защитите объект IPC.
Если вы должны использовать сокеты на TS (я лично выбрал бы другой метод для связи между приложениями на TS), тогда используйте номера портов. Выберите базовый номер порта и добавьте номер сеанса, чтобы получить порт, используемый для сеанса. Чтобы убедиться, что правильные приложения обмениваются данными, используйте метод аутентификации и / или подтверждение связи перед передачей данных. Теоретически сеансы могут быть пронумерованы до 65535, так что вы можете отклеиться, когда используете базовый номер порта, скажем, 2000, и сеанс, в котором ваше приложение выполняется в сеансе 65500.
Если вы действительно хотите использовать сокеты, то, возможно, вам поможет брокерская служба.