Отправка и получение широковещательной рассылки UDP на 255.255.255.255 и обратно в Node.js

Я пытаюсь реализовать сервер BOOTP в узле, для которого необходима широковещательная передача. К сожалению, документы немного запутаны, и я постоянно получаю странные ошибки. Забавно, но ошибки в Windows 7 и Ubuntu разные.

Кому-то действительно удалось отправить широковещательную рассылку UDP на 255.255.255.255 или получить ее по этому адресу?

Может ли кто-нибудь предоставить мне простую демонстрацию вещания Node UDP?


person buschtoens    schedule 27.05.2013    source источник


Ответы (1)


Используя punt, я попытался связать соединение с 255.255.255.255 через порт 5000 и получил эту ошибку EADDRNOTAVAIL

Я думаю, что адрес слишком общий. См. эту ссылку.

Вот код, который представляет собой слегка измененную версию примера punt.

var punt = require('punt');
var server = punt.bind('255.255.255.255:5000');
var a = punt.connect('255.255.255.255:5000');

server.on('message', function(msg){
  console.log(msg);
});

setInterval(function(){
  a.send({ hello: 'world' });
}, 150);

что дает эту ошибку:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: bind EADDRNOTAVAIL
    at errnoException (dgram.js:439:11)
    at dgram.js:206:28
    at dns.js:72:18
    at process._tickCallback (node.js:415:13)
    at Function.Module.runMain (module.js:499:11)
    at startup (node.js:119:16)
    at node.js:901:3
person Joseph Werle    schedule 29.05.2013
comment
EADDRNOTAVAIL — это та же ошибка, что и на компьютерах с Windows. Однако удалось ли вам сделать трансляцию, скажем, на 192.168.1.255? Оставшаяся проблема заключается в том, что BOOTP осуществляет широковещательную рассылку только на 255.255.255.255 в соответствии с RFC 951. - person buschtoens; 30.05.2013