Sdílet prostřednictvím


Pokyny pro klientské a serverové aplikace

Klientské a serverové aplikace nesmí předpokládat, že jedno připojení počítače je ekvivalentní jedné uživatelské relaci. Toto je zvláštní případ problému, který je popsán v IP adresy a názvy počítačů.

Aby bylo možné jednoznačně identifikovat připojení klienta nebo serveru, musí každý klientský modul používat jedinečný název nebo identifikátor. Aplikace mohou používat pojmenované objekty nebo kanály, sokety nebo jiné metody IPC. Další informace naleznete v tématu Obory názvů objektů jádra.

Aby byla služba Vzdálená plocha kompatibilní, musí být modul serveru v aplikaci klienta nebo serveru schopný zpracovat více klientů připojujících se ze stejného počítače. Aby toho bylo možné dosáhnout, musí modul serveru přijímat klientská připojení prostřednictvím dobře definovaného globálního rozhraní, jako je RPC nebo pojmenované kanály. Server a klient musí vyjednat jiný komunikační kanál pro každou uživatelskou relaci. Klient musí navázat připojení k serveru pomocí protokolů, které tento typ operace snadno podporují, například TCP/IP, kde je možné pro každou klientskou aplikaci použít jiné připojení soketu.

Klientský modul může volat funkci ProcessIdToSessionId k načtení identifikátoru relace služby Vzdálená plocha. Klient pak použije určitou formu komunikace meziprocesy k předání identifikátoru relace modulu serveru. Moduly klienta a serveru pak můžou pomocí identifikátoru relace nastavit privátní komunikační kanál. Modul serveru může například použít identifikátor relace pro přístup k objektům v oboru názvů relace pro objekty jádra.

Modul serveru může navíc použít identifikátor relace v WTSQuerySessionInformation volání k načtení dalších informací o klientovi. Modul serveru může také použít identifikátor relace v WTSSendMessage volání k zobrazení zprávy v klientském terminálu. Modul serveru může také vytvořit dvě události pro monitorování připojení klienta a odpojení od relace. Je však nutné ho zaregistrovat na serveru hostitele relace vzdálené plochy (hostitel relace VP), aby to bylo možné provést. Další informace naleznete v tématu Monitorování připojení relací a odpojení.

Výzvy k zadání uživatelského vstupu jsou potenciálním zdrojem problémů s klientskými nebo serverovými aplikacemi. Pokud například služba volá funkci MessageBox, zobrazí se okno se zprávou na ploše serveru hostitele relace VP, ne na klientské ploše. Pokud chcete zobrazit zprávu na klientské ploše, může služba volat funkci WtsSendMessage. Případně může služba požadovat vstup z klientského modulu a klientský modul může zobrazit uživatelské rozhraní a odeslat výsledný vstup zpět do služby.

Procesy vytvářené z více relací můžou odesílat data a přijímat data od sebe prostřednictvím použití bloků sdílené paměti. Další informace naleznete v tématu Vytvoření pojmenované sdílené paměti. Sdílenou paměť nelze použít za následujících podmínek:

  • Procesy používající blok sdílené paměti byly vytvářeny více relacemi.
  • Relace sdílejí stejné přihlašovací údaje pro ověřování uživatelů.