UDPSend() - einige Fragen

  • Hallo. Ich möchte einen String per UDPSend() an ein anderes Endgerät schicken, z. B. ein Smartphone welches mit einer bestimmten App entsprechende Strings empfangen kann. Ich habe mir das Beispiel angesehen und die Teile extrahiert von denen ich meine, dass ich sie brauche. Leider funktioniert das so nicht. Habe ich etwas übersehen?

    Code
    Local $sIPAddress = "192.168.2.102" ; Ziel-IP
    Local $iPort = 65532 ; Port used for the connection.
    Local $iSocket = UDPOpen($sIPAddress, $iPort)
    UDPSend($iSocket, "toto")

    Oder war das etwas zu minimalistisch gedacht? :)

  • Ich habe mir die Hilfe angesehen. Ich kann damit aber so nicht wirklich was anfangen, weshalb ich hier den Thread eröffnet habe. Ich möchte nicht zwischen zwei AutoIt-Skripten kommunizieren, sondern zuerst testweise zwischen einer Smartphone-App und dem AutoIt-Skript. Später dann wollte ich UDP-Daten von dem Skript an einen Arduino-Netzwerkadapter schicken. Aber wie gesagt ist das mit dem Smartphone der erste Schritt. Mit meinem Code funktioniert das allerdings noch nicht.

  • Dein Ansatz zuerst mit dem Smartphone zu testen ist ja schonmal okay, aber bevor du Daten über das Netzwerk verschickst solltest du das zunächst lokal am Rechner testen. Sprich erstelle einen Client und einen Server. Wenn die Kommunikation lokal funktioniert teste die Kommunikation wenn dein Serverscript auf einem anderen Rechner im Netzwerk läuft. Klappt das auch kannst du testen ob die Kommunikation mit fremder Software (z.B. Smartphone App oder deinem Arduino Gerät) funktioniert.

    Gründe warum das nicht auf anhieb klappen könnte gibt es jedemenge:

    - Firewalls/Virenscanner (sowohl lokal am Client/Server Rechner als auch zentral am Router)
    - Subnet übergreifende Kommunikation und fehlendes Routing
    - Fehlerhafte Konfiguration des Clients (z.B. falscher Zielport)
    - Fehlerhafte Kommunikation (z.B. falsches Kommunikationsprotokoll). Vielleicht kommen deine Pakete ja an, aber die Smartphone App kann nichts damit anfangen und ignoriert dich daher.
    - Schlechtes Netzwerk in Verbindung mit einem nicht zuverlässigen Übertragungs Protokoll (UDP statt TCP)... deine Pakete könnten schlichtweg verloren gehen.
    - usw.


    EDIT:

    Du verwendest im Übrigen kein UDPStartUp(), daher funktionieren vermutlich alle weiteren Dinge auch nicht. Das könntest du durch Debugging und Auswertung der Fehlercodes der Funktionen auch selbst feststellen. ;)
    Außerdem muss sowohl der Socket als auch UDP selbst bei Programmende sauber geschlossen bzw. heruntergefahren werden. Details dazu kannst du den Beispielen in der Hilfe entnehmen.

    4 Mal editiert, zuletzt von misterspeed (28. Februar 2016 um 12:59)

  • sondern zuerst testweise zwischen einer Smartphone-App und dem AutoIt-Skript.

    Welche App? Ist die Smartphone-App Server oder Client? Wie konfiguriert? :Glaskugel: