NEWS
[gelöst] UDP listener - EADDRINUSE
-
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
-
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.
-
@womi
Teste mal welches Signal dein Skript erhält, wenn du
Das hier einbaustconst process = require('process'); process.on('exit', (code) => { console.log(`About to exit with code: ${code}`); });
-
@womi Du kannst beim Stoppen des Skripts den Socket schließen:
onStop(() => { socket.close(); });
-
@OliverIO
Der gibt mir hier gar nichts aus.
Was nicht schlimm ist, da der Vorschlag von @AlCalzone genau macht, was er soll. -
@AlCalzone
Super, ganz herzlichen Dank! Klappt hervorragend.
Kann ich das ganze irgendwie als gelöst markieren? -
@womi Ich glaube du musst den ersten Beitrag bearbeiten.