nodejs: ошибка: EADDRNOTAVAIL, невозможно назначить запрошенный адрес - PullRequest
6 голосов
/ 26 июля 2011

У меня следующий сервер node.js, работающий на 172.16.1.218:

var net=require('net');

var server = net.createServer(function (socket) {
        socket.write("Echo server\r\n");
        socket.pipe(socket);
});
server.listen(6001, "172.16.1.218");

Я могу подключиться к нему по телнету, и он, как и ожидалось, эхом.

У меня следующий сервер node.js, работающий на 172.16.1.224:

var net = require('net');

var server = net.createServer(function (socket) {

  // Every time someone connects, tell them hello and then close the connection.
  socket.addListener("connect", function () {
    sys.puts("Connection from " + socket.remoteAddress);
    socket.end("Hello World\n");
  });

});

// Fire up the server bound to port 7000 on localhost
server.listen(6001,"172.16.1.218");

Но когда я пытаюсь запустить его, я получаю следующую ошибку:

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: EADDRNOTAVAIL, Cannot assign requested address
    at Server._doListen (net.js:1100:5)
    at net.js:1071:14
    at Object.lookup (dns.js:159:5)
    at Server.listen (net.js:1065:20)
    at Object.<anonymous> (/home/hynese/Desktop/test.js:16:8)
    at Module._compile (module.js:402:26)
    at Object..js (module.js:408:10)
    at Module.load (module.js:334:31)
    at Function._load (module.js:293:12)
    at Array.<anonymous> (module.js:421:10)

Я отключил все брандмауэры и т. Д. Я не могу понять эту ошибку. Надеюсь, что кто-то может помочь.

Большое спасибо заранее,

1 Ответ

13 голосов
/ 26 июля 2011

На 172.16.1.224 вы не можете прослушивать 172.16.1.218, поскольку это не IP-адрес прослушиваемой машины.

Если вы хотите прослушивать на этом аппарате, используйте:

server.listen(6001,"172.16.1.224");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...