LabVIEWForum.de
Server/TCP - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Server/TCP (/Thread-Server-TCP)



Server/TCP - firas_1984 - 03.05.2011 16:00

Hallo.

Ich habe ein Server in Lab VIEW aufgebaut, das Problem ist aber, dass ich nicht weiß wie ein Server auf mehrere Ports gleichzeitig hören kann.
ich habe einen Baustein der Heißt Listener Eerstelln, an dessen Eingang kann ich nur ein Port anlegen, aber da es mehrer Daten zu Verwaten sind und pro ein Datensatz nur ein Port angesprochen werden kann, muss der Listner auf mehrer Ports gleichzeitig Hören, wie funktioniert es??

Lab VIEW Version 2010.
Danke.


RE: Server/TCP - BNT - 03.05.2011 17:51

Hallo
Ein Listener-Prozess sollte immer nur auf einen Port lauschen, damit sich die Klient-Software immer nur an einen Port verbinden kann. Das hat diverse Vorteile.

Wenn die Verbindung zwischen Listener und Klient zustande gekommen ist, teilt der Server dem Klienten einen freien Klienten-speziefischen Port mit. Beide bauen die Verbindung danach wieder ab. Der Listener-Prozess startet für diesen Klienten einen neuen Server-Prozess, der auf dem zuvor bestimmten Port die Verbindung öffnet. Der Listener lauscht danach wieder auf neue Klienten. Auch der Klient baut die Verbindung auf dem von Listener bestimmten Port neu auf. Siehe auch Beitrag auf LVUG

Mit dieser Vorgehensweise konnte ich bisher alle Multi-Klienten/Multi-Server-Projekte lösen?

Gibt es bei Dir einen speziellen Grund, einen Server mit mehreren Listenern zu implementieren?

Gruß Holger


RE: Server/TCP - firas_1984 - 04.05.2011 11:13

Also ich habe folgende Aufgabe, Ich muss mit einem Handy auf dem Windows mobile ist mit Lab VIEW steuern, dad Handy ist ein Client. Mit dem Handy werden die Informationen zur Bewegung eines Servo Motors an eine Rechner geschickt bzw. Server, der nimmt die Daten an und muss es an einem anderen Clienten der auf dem Microcontroller Embed ist schicken. Die Temperatur eines Temperatursensort wirde von dem Client der auf dem Microcontroller ist, an dem PC bzw Server geschickt und der muss dann siese Information an das Handy weiterleiten.

Habe mir gedacht, dass für die Verbindung des Handys und dem Server auf dem PC ein Port belegt wird und für die Verbindung des Servers und den Client auf dem Microcontroller einen anderen Porst belegt wird, ist es richtig so?, wenn ja wie kann denn der Server auf zwei Ports gleichzeitig Hören??

kann auch der Server, gleichzeitig von einem Port die Daten(die Temperatur vom Client auf dem Microcontroller) Lesen und diese Daten dann
an dem Handy der einen anderen Port hat schicken, ohne dass dafür ein Client aufgaubaut werden muss??? wie würde so eine Aufgabe realisiert??

Vielen Dank.


RE: Server/TCP - BNT - 04.05.2011 12:05

Wenn sich genau ein Handy und genau ein MicroControll verbinden sollen und die Ports bekannt sind, könnte folgendes VI ein Lösungsansatz sein.
[attachment=33643]
Dabei sollte der MicroController als Server implementiert sein. Falls das nicht der Fall sein sollte, geht es wie in den LVUG Beispielen und Queues/Notifikationen, um die Interthread-Kommunikation zu implementieren.

Gruß Holger


RE: Server/TCP - rolfk - 09.05.2011 14:59

(03.05.2011 16:00 )firas_1984 schrieb:  Hallo.

Ich habe ein Server in Lab VIEW aufgebaut, das Problem ist aber, dass ich nicht weiß wie ein Server auf mehrere Ports gleichzeitig hören kann.
ich habe einen Baustein der Heißt Listener Eerstelln, an dessen Eingang kann ich nur ein Port anlegen, aber da es mehrer Daten zu Verwaten sind und pro ein Datensatz nur ein Port angesprochen werden kann, muss der Listner auf mehrer Ports gleichzeitig Hören, wie funktioniert es??

Lab VIEW Version 2010.
Danke.

Also bei einem vernünftigen Protokoll braucht man nicht für jeden Datentyp einen Server zu betreiben (das probierst Du eigentlich wenn Du mehrere Ports benützen willst). Ansonsten wird Dir nichts anderes üblig bleiben als für jeden Port tatsächlich ein eigenes Listen zu verwenden und auch die Abarbeitung der Anfrage per Port zu implementieren.

Aber wie gesagt ein sinnvolles Serverprotokoll bietet eine Möglichkeit um mittels eines Parameters den Datantyp/Requesttyp, etc anzugeben und der Server macht dann das entsprechend Richtige.