Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich bin neu in diesem Forum, hab mich schon ein bisschen umgesehen und muss sagen hier sind Experten am Werken.
Nun aber zu meinem Problem:
Ich möchte mit einem Java Programm über TCP IP kommunizieren. Das Senden aus dem LabVIEWprogramm funktioniert einwandfrei, das Java Programm erkennt den gesendeten String und kann ihn auch lesen. Darauf soll das Java Programm einen String ans LabVIEW Programm zurückschicken, den ich in einem Anzeigeelment darstellen möchte. Aber das Anzeigeelment bleibt leer. Das Javaprogramm schickt ganz sicher einen String zurück, dass habe ich mit einem selbstprogrammierten Java Client getestet. Ich versteh einfach nicht warum das nicht geht.
eine erste (aber leider immer wieder vergessene) Möglichkeit zur Fehlersuche besteht im Verdrahten des Error-Clusters von einer Funktion zur nächsten. Wenn man dann noch einen Indicator erstellt, sieht man die Fehlermeldung auch noch...
Wenn du das erledigt hast und uns sagen kannst, ob und wenn ja welche Fehler angezeigt werden, einfach nochmal melden!
' schrieb:Darauf soll das Java Programm einen String ans LabVIEW Programm zurückschicken, den ich in einem Anzeigeelment darstellen möchte. Aber das Anzeigeelment bleibt leer.
Guckst du Hilfe zu TCP:Lesen.
Da steht, das im Mode Standard die Anzahl der angegebenen Bytes gelesen wird. Da du Standard gewählt hast und als Anzahl Null - wird eben nichts gelesen.
Schließe am Eingang "Anzahl zu lesender Zeichen" einen Wert <> Null an. Ansonsten, steht in der Onlinehilfe, wie man bei der DÜ vorgehen soll.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Das Problem liegt an der Anzahl der Zeichen, die du lesen musst. Schicke einfach die Länge des Strings vornedran, damit du weisst wie viel du danach lesen musst.
Du brauchst aber immer zwei Lesebefehle. Einer, der ein Zeichen liest: nämlich die "5" (also: Den Wert Eins an den Anzahl-Eingang). Der zweite Lesebefehl liest dann die nächsten 5 Zeichen - also "Hallo". Dazu muss natürlich die "5" als Zahl am Anzahl-Eingang angeschlossen werden.
Du könntest aber auch folgendes probieren: Stell den Mode auf CRLF und sende "Hallo"+CRLF. Dann sollte ein Lesebefehl reichen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Das mit crlf mode hat auch nicht funktioniert.
Zum Schluss habe ich mal folgendes ausprobiert. Mode auf ganz normal, und 1Byte einlesen. Das Javaprogramm sendet "3einrn" oder "3ausrn" als Antwort. Dann sollte eigentlich der 3er in den indikator geschrieben werden, oder?
Im error out trat folgender Fehler auf: TCP Read in Client2.vi
' schrieb:Das mit crlf mode hat auch nicht funktioniert.
Schlecht.
Zitat:Mode auf ganz normal, und 1Byte einlesen. Das Javaprogramm sendet "3einrn" oder "3ausrn" als Antwort. Dann sollte eigentlich der 3er in den indikator geschrieben werden, oder?
Jawohl. So testet man das und "3" sollte dann drinnstehen.
Jetzt kann ich gerade nichts mehr empfehlen. Muss ich selbst mal ausprobieren.
Zitat:Im error out trat folgender Fehler auf: TCP Read in Client2.vi
Welcher genaue Fehler tritt auf. Das sollte aus dem Fehlertext hervorgehen: Timeout? Oder "Verbindung fehlt?"? Oder?
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).