Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] UDP listener - EADDRINUSE

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] UDP listener - EADDRINUSE

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      womi last edited by womi

      Hi
      Ich glaube, ich stelle mich nur blöd an... finde aber keine Lösung.
      Ich versuche per Script mit dgram auf einen UDP-Port zu lauschen:

      var PORT = 50222;
      var HOST  = '0.0.0.0';
      
      var dgram = require('dgram');
      
      var socket = dgram.createSocket('udp4');
      socket.bind(PORT, HOST);
      
      socket.on('listening', function() {
          var address = socket.address();
          log('UDP Server listening on ' + socket.address + ":" + socket.port);
      });
      
      //Receive message
      socket.on('message',function(message,remote) {
          log('Message: ' + message);   
      });
      
      //Error handling
      socket.on("error", function (err) {
          console.log("Socket error: " + err);
      });
      

      Soweit so gut.
      Das Problem ist, dass er mir natürlich bei jedem Neustart des Scripts (nicht des javascript adapters) die Meldung ausgibt:

      Socket error: Error: bind EADDRINUSE 0.0.0.0:50222
      

      Das alleine wäre nicht weiter schlimm, aber logischerweise aktualisiert es dann den Code nicht, der bei socket.on('message'... abgearbeitet werden soll.
      Wie kann ich den Port wieder freigeben, oder korrekt "reassignen" oder was auch immer?

      Ich will ja nicht jedesmal den ganzen Adapter neu starten müssen, solange ich am Code herumbastel.

      Danke für eine Erleuchtung

      W OliverIO AlCalzone 3 Replies Last reply Reply Quote 0
      • W
        womi @womi last edited by

        Da auf meinen Post keine Reaktion kam, habe ich entweder etwas falsch gemacht 🤔 , oder es hat keiner eine Antwort. Das lässt mich, ob der vielen Profis hier, “befürchten”, dass das nicht geht, die binds nochmals zu ändern ohne den javascript Adapter neu zu starten.

        1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @womi last edited by

          @womi
          Teste mal welches Signal dein Skript erhält, wenn du
          Das hier einbaust

          const process = require('process');
          process.on('exit', (code) => {
            console.log(`About to exit with code: ${code}`);
          });
          

          https://nodejs.org/api/process.html#process_event_exit

          W 1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer @womi last edited by

            @womi Du kannst beim Stoppen des Skripts den Socket schließen:

            onStop(() => { 
                socket.close();
            });
            
            W 1 Reply Last reply Reply Quote 1
            • W
              womi @OliverIO last edited by

              @OliverIO
              Der gibt mir hier gar nichts aus.
              Was nicht schlimm ist, da der Vorschlag von @AlCalzone genau macht, was er soll.

              1 Reply Last reply Reply Quote 0
              • W
                womi @AlCalzone last edited by

                @AlCalzone
                Super, ganz herzlichen Dank! Klappt hervorragend.
                Kann ich das ganze irgendwie als gelöst markieren?

                AlCalzone 1 Reply Last reply Reply Quote 0
                • AlCalzone
                  AlCalzone Developer @womi last edited by

                  @womi Ich glaube du musst den ersten Beitrag bearbeiten.

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  980
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  837
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo