Variable Exchange in V2?

Also vieleicht stehe ich jetzt auch auf dem Schlauch, aber was steht dem entgegen zwei V2 damit zu koppeln und Daten auszutauschen?

Hallo,

klar, Versuch macht klug.

Guten Morgen Zusammen,
…Aber wie? Wie kann ich da Daten austauschen, da stell ich mich irgendwie Ur-Duselig an!

Der einfache Weg ist, den Variableninhalt in eine Datei zu schreiben, die
im Netzwerk freigegeben ist. Dann koennen alle drauf zugreifen. Nicht elegant, aber funzt.

VG
Stephan

Hallo Hinti,

die einfachste Möglichkeit des Datenaustauschs geht über eine Socket-Verbindung. Bei mir läuft eine solche völlig problemlos.

Die Einrichtung ist denkbar einfach:

  1. Auf einem der beiden Rechner einen Server Socket einrichten. Portnummer > 1024 wählen.
  2. Auf dem anderen Rechner einen Client Socket einrichten. IP-Adresse des Server Sockets angeben und dieselbe Portnummer.
  3. Eine Registervariable auf dem Client anlegen. Übergeordnete Instanz: der Client Socket, den Namen des zu verwendenden Skripts angeben.
  4. Die folgenden Skripte zum Testen anlegen.

A. Server Seite (Sender):

$text = "Messwerte";                      // String
$temperatur = 21.7;                       // Float-Wert
$feuchte = 46;                            // Integer-Wert
SSCK_SendText($ID, $text. "|". serialize($temperatur). "|". serialize($feuchte)); // "|" wurde hier als Trennzeichen gewählt

B. Client Seite (Empfänger):

$arr = explode("|", $IPS_VALUE);          // den empfangenen String am Trennzeichen trennen
$text = $arr[0];                          // Text auslesen
$temperatur = unserialize($arr[1]);       // Temperaturwert auslesen
$feuchte    = unserialize($arr[2]);       // Feuchtewert auslesen

Wenn der Client etwas senden soll, dann musst Du statt SSCK_SendText(…) den Befehl CSCK_SendText(…) verwenden. Für eine bidirektionale Verbindung muss auch der Server Socket mit einer Registervariablen verbunden sein.

Welcher der beiden Rechner Server oder Client sein soll spielt keine Rolle.

Gruß
HJH

Hallo HJH,
ich bin gerade beim testen und erhalte jetzt aber auf der serverseite die warnung das der compiler die funktion nicht kennt: SSCK_SendText.

Fatal error: Call to undefined function SSCK_SendText() in [.SOCKET\SendTemps] on line 14

(sorry das ich nochmal deine hilfe brauche, wahrscheinlich sitze ich grade auf der Leitung :o)

Schön Grüß

ich sollte vielleicht noch hinzufügen, der umgekehrte weg funktioniert. Also vom client zum server senden (dein vorschlag bezüglich bidirektionale verbindung).

Hallo Hinti,

um die Funktion SSCK_SendText(…) verwenden zu können muss auf dem selben PC ein Server Socket eingerichtet und geöffnet sein.

Gib mal im Skript am Zeilenanfang „SS“ ein und drücke dann Strg-Leertaste. Dann muss eine Liste erscheinen mit allen Server Socket Befehlen. Wenn die Liste nicht erscheint, dann ist die Server Socket Instanz nicht in Ordnung.

Gruß
HJH

oh mann, ich bin echt so ein bimbo,

herzlichen dank HJH, ich saß tatsächlich ‚brettl-broat‘ auf meiner eigenen leitung. ich hatte auf der einen seite nur den client und der anderen nur den server. jetzt habe ich logischerweise auf beiden seiten beides…

vòila

PS: Kommunikation funktioniert nun bidirektional und hervorragend (hab ich schon danke gesagt?, einfach nochmal… danke vielmals für die detailierte beschreibung)

Hallo Hinti,

Das ist nicht nötig. Es genügt von jeder Instanz eine einzige. Je nachdem, von wo Du sendest, musst Du die entsprechende Sendefunktion verwenden: CSCK… auf dem Client und SSCK… auf dem Server.

Und, wie schon erwähnt, ist es gleichgültig, welcher PC den Server und welcher den Client spielt.

Gruß
HJH

ja, du hast recht, jetzt hab ich das noch mal ordentlich geändert und wirklich nur noch am client den client und am server nur noch den server. der richtige befehl machts halt aus :rolleyes: