![]() |
Client-Server Programme auf Terminalserver ausführen
Hi, ich bekomme hin und wieder die Frage, ob meine Programme, die z.T. als Client-Serverprogramm-Lösungen gestaltet sind, auch auf einem Terminalserver laufen.
Da ich keine Ahnung von Terminalservern habe, kann ich da i.d.R. nur ausweichend antworten ("sollte", "müssten Sie selber ausprobieren"). Daher hier meine Frage: Eine Programmlösung, die aus einem Server-Programm und beliebig skalierbaren Clients besteht, und die Programme die über TCP-IP miteinander kommunizieren (jeder Client kann bei Bedarf einen anderen Port verwenden), gibt es da Dinge, die grundsätzlich Probleme erzeugen könnten? Mein Server-Programm läuft auf dem Terminal-Server, ist schon klar. Ich gehe mal davon aus, dass auch die Client-Programme dann auch auf dem Terminalserver installiert werden. Aber werden die dort ausgeführt oder auf den Client-Geräten? Die Clients sind so programmiert, dass nur eine Instanz starten kann. Ist das ein Problem oder ist das - wenn sie auf dem Terminalserver ausgeführt werden - trotzdem möglich (weil der irgendwie die Programme in geschützten Bereichen auseinanderhält)? Wäre für ein paar hilfreiche Anmerkungen dankbar... Und: Könnte ich so eine Situation hier mit verschiedenen VM's nachstellen oder wird dafür bestimmte Hardware benötigt? |
AW: Client-Server Programme auf Terminalserver ausführen
Zitat:
|
AW: Client-Server Programme auf Terminalserver ausführen
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für die Antwort. Was meinst Du mit die Clients öffnen selber Ports?
Hier ist es so angelegt, dass man die mit dem Programm einmal einstellt und dann verwendet. Andere Ports nutzen die Programme dann nicht. Als Beispiel mal der Einstellungs-Dialog Netzwerk für den Client anliegend. |
AW: Client-Server Programme auf Terminalserver ausführen
Obwohl es Terminalserver heisst, laufen auf ihm die Clients. Der Server sollte auf dem (File-)Server installiert werden.
Alle Sessions uaf dem TS haben natürlich die selbe IP. Es kommt dann darauf an, ob Dein Programm das unterstützt. Die "Clients" müssen dann natürlich nicht nur anhand der IP-Adresse, sondern auch anhand des (Client-)Ports unterschieden werden. Funktionieren mehrere Clients auf einem Rechner? Melde Dich mal mit 2 Benutzern an deinem lokalen Rechner an und Teste, ob es funktioniert. |
AW: Client-Server Programme auf Terminalserver ausführen
Nicht obwohl, sondern weil es Terminalserver heißt laufen die Anwendungen auf diesem und es wird nur die Anzeige übertragen. Eben so, wie man das von ganz früher kannte, wo es für die Benutzer Terminals (ja, damals nur reiner Text) gab. Und ein Server stellt etwas zur Verfügung (z.B. Datenbanken, Dateien, Web) und hier stellt der eben Terminals zur Verfügung.
Bei dem Mutex gib es die Unterscheidung zwischen Session (local) und Machine (global). Ist der Prefix
Delphi-Quellcode:
dann kann in diesem Falle nur eine Instanz pro Maschine laufen, andernfalls eben pro Anmeldesession (und das passt dann auch für den Terminalserver).
Global\
Nutzt du von deiner Anwendung auch noch Verzeichnisse/Dateien lokal auf dem Rechner? Dann müsstest du das auch noch berücksictigen, dass ein Anwender auch mehrfach angemeldet sein könnte (das kann man aber auch abschalten, dann darf jeder Benutzer nur einmal angemeldet sein) |
AW: Client-Server Programme auf Terminalserver ausführen
Ja, die Ausführung unter unterschiedlichen User-Accounts funktioniert auf demselben PC, erwartungsgemäß muss ich auf dem anderen Benutzer / Client die Port-Nummer ändern, aber dann gehts...
|
AW: Client-Server Programme auf Terminalserver ausführen
Zitat:
|
AW: Client-Server Programme auf Terminalserver ausführen
Zitat:
|
AW: Client-Server Programme auf Terminalserver ausführen
Zitat:
Was ich allerdings nicht verstehe: sendet der Server Daten an den Client über diesen zweiten Port? Falls ja, warum verwendet der Server nicht den Port mit dem sich der Client zum Senden verbindet, auch in die Gegenrichtung? Bei TCP/IP sind Ports bidirektional, der Server kann Daten über den gleichen Port auch an den Client senden, parallel zum Empfangen von Daten des Clients. (Genau wie man mit einer Telefonleitung Sprechen und Hören kann) |
AW: Client-Server Programme auf Terminalserver ausführen
RDP ist da auch ein Stichwort, wenn du das testen möchtest.
Mutex ist schon erwähnt worden. Das Schreiben/Lesen aus der Registry ist am Terminalserver in anderen Zweigen untergebracht, wenn ich das richtig im Kopf habe, als auf einem normalen Rechner. Drucken + lokale Laufwerke bzw alle lokalen Ressourcen muss man sich auch ansehen, weil "lokal" am TS ja was anderes bedeutet. Wenn es mehrere TS gibt (Loadbalancing) sind lokale Daten ein Problem, weil die je nach TS dann auf einem anderen Rechner liegen können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz