Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] UDP listener - EADDRINUSE

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    280

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

[gelöst] UDP listener - EADDRINUSE

Scheduled Pinned Locked Moved JavaScript
7 Posts 3 Posters 1.1k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    womi
    wrote on last edited by womi
    #1

    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 OliverIOO AlCalzoneA 3 Replies Last reply
    0
    • W 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 Offline
      W Offline
      womi
      wrote on last edited by
      #2

      Da auf meinen Post keine Reaktion kam, habe ich entweder etwas falsch gemacht :thinking_face: , 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
      0
      • W 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

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        wrote on last edited by
        #3

        @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

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        W 1 Reply Last reply
        0
        • W 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

          AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          wrote on last edited by
          #4

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

          onStop(() => { 
              socket.close();
          });
          

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          W 1 Reply Last reply
          1
          • OliverIOO OliverIO

            @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 Offline
            W Offline
            womi
            wrote on last edited by
            #5

            @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
            0
            • AlCalzoneA AlCalzone

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

              onStop(() => { 
                  socket.close();
              });
              
              W Offline
              W Offline
              womi
              wrote on last edited by
              #6

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

              AlCalzoneA 1 Reply Last reply
              0
              • W womi

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

                AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                wrote on last edited by
                #7

                @womi Ich glaube du musst den ersten Beitrag bearbeiten.

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate

                516

                Online

                32.7k

                Users

                82.5k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Home
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe