' schrieb:ich habe 100ms am Parameter Timeout eingestellt.
Wie kann ich den "Fehler 56" abfangen ?
Dort, wo du 100ms eingestellt hast, wird dieser Fehler bereits abgefangen. Guckst du das Element nach TCP/IP-Rd und der Enumerator mit der Nummer 56.
Zitat:Ich verstehe auch nicht warum das Programm nicht in die Event-Schleife "Übertragung beenden" hineinläuft.
Ganz einfach: Weil die While-Schleife, in der die TCP/IP-DÜ gemacht wird, mit der Event-Struktur sequenziert ist. Hängt alles mit dem Datenflußprinzip zusammen, auf dem LV aufgebaut ist. Du müsstest also zuerst auf Stopp, dann Beenden drücken.
Außerdem solltest du folgende Änderungen machen:
Im Case Timeout gehört die TCP/IP-Referenz durchverbunden. Die Einstellung "Standard, wenn nicht verwendet" kann hier zu Problemen führen.
Im Case "Übertragung beenden" gehört ein FALSE rein, kein TRUE. Nach dem Beenden gibt es die TCP/IP-Referenz nicht mehr, daher können auch keine Daten übertragen werden.
Das Löschen des Bedienelementes "Eingabe" sollte nicht per Lokaler Variablen gemacht werden, sondern mit einem Property, das mit der nachfolgenden While-Schleife sequenziert werden muss.
Der Button STOP muss vor der While-Schleife per sequenziertem Property gelöscht werden.
Und noch eins zu deiner eigentlichen Frage:
Warum das Programm beim Beenden hängt, kann ich nicht genau sagen. Bei mir geht nämlich gar nichts, weil alle Elemente Fehler 1 (ArgumentError) bringen. Ich habe mit 127.1.1.0 Port 0 ausprobiert.