Ankündigung

Einklappen
Keine Ankündigung bisher.

UDP-Listener in Client-Netzwerk

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • UDP-Listener in Client-Netzwerk

    Hallo zusammen,

    ich möchte einen UDP-Listener programmieren, welcher allerdings im Netzwerk des Clients lauscht.

    PHP bietet für UDP zwar Funktionen, allerdings vermute ich, dass der listener hier wohl im Netzwerk des Servers lauschen würde, oder?
    Da PHP ja serverseitig ausgeführt wird.

    Gibt es hierfür Lösungen? Zur Not auch mit JS?

    Gruß Henrik


  • #2
    Zitat von HenrikM Beitrag anzeigen
    PHP bietet für UDP zwar Funktionen, allerdings vermute ich, dass der listener hier wohl im Netzwerk des Servers lauschen würde, oder?
    Da PHP ja serverseitig ausgeführt wird.
    Richtig.

    Zitat von HenrikM Beitrag anzeigen
    Gibt es hierfür Lösungen? Zur Not auch mit JS?
    Mit Javascript geht es. so weit ich gelesen habe, wohl nicht, aber welchen Anwendungsfall hast du denn, das du das so brauchst/?

    Kommentar


    • #3
      PHP kann nur UDP Pakete aus dem Netz des Servers (wozu der Client im Normalfall nicht dazugehört) empfangen, korrekt.

      JavaScript (zumindest im Rahmen von Browsern) hat keinen Zugriff auf das Netzwerk des Clients, alleine schon aus Sicherheitsgründen (Sandboxing).

      Du müsstest also eine separate Client Anwendung schreiben, welche die UDP Pakete auf deinen Server weiterleitet.
      "Software is like Sex, it's best if it's free." - Linus Torvalds

      Kommentar


      • #4
        Die Möglichkeiten dürften sehr begrenzt sein, node.js vermutlich mit die beste Chance...
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Node.js ist eine serverseitige Plattform

          Kommentar


          • #6
            Ersteinmal vielen Dank für eure Rückmeldungen

            Zitat von protestix Beitrag anzeigen
            Mit Javascript geht es. so weit ich gelesen habe, wohl nicht, aber welchen Anwendungsfall hast du denn, das du das so brauchst/?
            Folgender Fall. Auf einem Schießstand stehen Ziele, welche mithilfe von Lichtschranken das Geschoss orten und an einen Server senden, welche Ringzahl der Schütze erzielt hat.
            Dieser Server sendet das Ergebjis an den Bildschirm an dem Stand des Schützen und gibt per UDP einen Log aus.

            Dies habe ich mir zu Nutzen gemacht, um den Log mit meinem Smartphone abzugreifen und so auch auf meinem Smartphone zu sehen, wo mein Schuss gelandet ist. (Soweit so gut)
            Nun habe ich mir gedacht, könnte ich das ganze mit einem Online-Schiebuch kombinieren. Und damit ich nicht auch zusätzlich zur Webseite noch eine iOS- und eine Android-App programmieren muss, wäre meine Wunschvorstellung gewesen, alles mit PHP realisieren zu können.

            Da ich die Lösung dann auch anderen Schützen zugänglich machen möchte, wollte ich eigentlich vermeiden, dass ein Programm auf dem Server des Schützenvereins istalliert werden muss. Nicht jeder Schütze hat hierauf Zugriff.

            Hat noch jemand eine Idee?

            Sofern hier keine Möglichkeit besteht: Wie könnte ich von dem Server die Logs an den Webserver weiterleiten? Welche Möglichkeiten gibt es dort?
            Ich habe auf einem vorherigen Projekt bereits ein Programm (visualBasic), welches den Log ebenfalls abgreift, ich bräuchte also tatsächlich nur noch eine Methode, um die Daten auf meinem Webserver zu bekommen.

            Gruß Henrik

            Kommentar


            • #7
              Du könntest auch einen Raspberry Pi in das Netzwerk hängen (aber mit entsprechender Wartung/Absicherung), welcher dann die Pakete an deinen Server weiterleitet. Dafür würde ich dann die Daten in TCP umpacken, um Übertragungsfehler abzufangen.
              "Software is like Sex, it's best if it's free." - Linus Torvalds

              Kommentar


              • #8
                Da macht es für mich keinen Unterschied.
                Dann bevorzuge ich lieber die Variante, auf dem Server eine Software installieren zu müssen.

                Sofern diese "Standalone" vom USB-Stick o.ä. läuft, ist hier die Hemmschwelle wohl niedriger.

                Welche Möglichkeiten gibt es denn, die Daten an meinem Server zu senden? Am besten so, dass das PHP-Skript auf dem Empfang der Daten wartet und dann die Anzeige updatet.
                Stichwörter reichen mir hier theoretisch, arbeiten würde ich mir das natürlich selbst.

                Kommentar


                • #9
                  https://www.binarytides.com/udp-sock...amming-in-php/ teste es doch einfach mit der client.php ist halt einfach nur ein Beispiel, den Script musst du aber über SSH starten und nicht im Browser wegen while(1) alternativ kannst du, logstash verwenden, das ist eine Java Applikation die auf UDP lauschen kann und die Daten an Elastic Search Datenbank weiterleiten kann. die kann sich dann irgendwo in deinem Netz befinden die bietet dir eine API an die du mit AJax anfragen kannst. ist aber nicht so einfach
                  apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                  Kommentar


                  • #10
                    Dann muss der Server aber am Internet hängen und muss dementsprechend gewartet werden.

                    Du verpackst die Daten einfach in einen HTTPS Request und schickst diesen an den Server. Dann muss der Server auf nix warten. Soll die UI aktualisiert werden, musst du entweder Websockets, Long-Polling oder Short-Polling nutzen, was die UI dann mit neuen Daten versorgt.
                    "Software is like Sex, it's best if it's free." - Linus Torvalds

                    Kommentar

                    Lädt...
                    X