LabVIEWForum.de
Ein Server, mehrere Clients, geht das? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Ein Server, mehrere Clients, geht das? (/Thread-Ein-Server-mehrere-Clients-geht-das)

Seiten: 1 2 3


Ein Server, mehrere Clients, geht das? - cb - 29.10.2007 20:49

' schrieb:Vielleicht hast du das schon gelesen:
http://forums.lavag.org/publish-subscriber...tml&p=37630
Es sieht ähnlich wie bei mir aus, das einzige was ich nicht verstanden habe, wozu brauchst du für jeden Client eine eigene Queue in den VIs die die Anfragen von Clients über TCP/IP empfangen?

Ansonsten vielen Dank für deine ausführliche Antwort, eg


nu, irgendwie muss du ja auch Daten an den Client zurück senden, wenn der eine Anfrage schickt. Das kannst du natürlich aus dem MainVI heraus machen, aber dann blocken sich die Clients gegenseitig, wenn die Übertragung mal was länger dauert. Bei einem etwas mehr belasteten Server laufen dann immer mehr Anfragen ein und die "Antwort Queue" läuft mehr oder weniger voll ...

Besser ist es das Senden und Empfangen im reentranten Client VI abzuwickeln, dann musst du aber irgendwie die Daten da rein schaufeln. Das mach ich über eine Queue ...

natürlich kannst du auch ein reentrantes Client VI erstellen, das alle Funktionen des Servers beinhaltet, aber das führt bei mehreren Clients ganz schnell zu einem stark erhöhten Speicherbedarf. Darum habe ich einen Ansatz gewählt, bei dem die Anfragen quasi seriell im MainVI verarbeitet werden und nur das Senden und Empfangen via TCP im ClientVI abgehandelt wird ...


Ein Server, mehrere Clients, geht das? - eg - 29.10.2007 20:53

' schrieb:nu, irgendwie muss du ja auch Daten an den Client zurück senden, wenn der eine Anfrage schickt. Das kannst du natürlich aus dem MainVI heraus machen, aber dann blocken sich die Clients gegenseitig, wenn die Übertragung mal was länger dauert. Bei einem etwas mehr belasteten Server laufen dann immer mehr Anfragen ein und die "Antwort Queue" läuft mehr oder weniger voll ...

Besser ist es das Senden und Empfangen im reentranten Client VI abzuwickeln, dann musst du aber irgendwie die Daten da rein schaufeln. Das mach ich über eine Queue ...

natürlich kannst du auch ein reentrantes Client VI erstellen, das alle Funktionen des Servers beinhaltet, aber das führt bei mehreren Clients ganz schnell zu einem stark erhöhten Speicherbedarf. Darum habe ich einen Ansatz gewählt, bei dem die Anfragen quasi seriell im MainVI verarbeitet werden und nur das Senden und Empfangen via TCP im ClientVI abgehandelt wird ...


Allerdings. Big Grin

eg


Ein Server, mehrere Clients, geht das? - eg - 15.07.2008 09:50

@i2dx also die Sache mit einer Queue pro Client habe ich verstanden und denke das werde ich in meiner nächsten Version unbedingt einbauen. Michinteressiert auch ob man eine Art Schutz gegen "verrückte" Clients realisieren kann. Was kann man gegen Clients, die ununterbrochen Nachrichten an den Server senden unternehmen? Sollte es sowas wie scheduler sein?

http://de.wikipedia.org/wiki/Prozess-Scheduler


Ein Server, mehrere Clients, geht das? - cb - 15.07.2008 13:51

' schrieb:@i2dx also die Sache mit einer Queue pro Client habe ich verstanden und denke das werde ich in meiner nächsten Version unbedingt einbauen. Michinteressiert auch ob man eine Art Schutz gegen "verrückte" Clients realisieren kann. Was kann man gegen Clients, die ununterbrochen Nachrichten an den Server senden unternehmen? Sollte es sowas wie scheduler sein?

http://de.wikipedia.org/wiki/Prozess-Scheduler

pro client mitzählen, wie viel Anfrage er pro (von dir gewählter Zeiteinheit) gesendet hat. Wenn er z.B. 100 Anfragen pro Sekunde sendet wird das als "Spamming" gewertet und die Verbindung zum Client wird abgebrochen ...