2016-02-29 3 views
2

Я пытаюсь подключиться к UDP сокет на другом компьютере, используя UDP сокет Node.js и я получаю следующее сообщение об ошибке:UDP сокет в node.js

bind EADDRNOTAVAIL192.168.1.50;12345 

Я использую следующий код :

var port = 12345; 
    var host = "192.168.1.50"; 
    var sock = dgram.createSocket("udp4"); 
    sock.on("listening", function() { 
     console.log("server listening "); 
    }); 

    sock.on("error", function (err) { 
     console.log("server error:\n" + err.stack); 
     sock.close(); 
    }); 

    //start the UDP server with the radar port 12345 
    sock.bind(port, host); 

любая помощь?

благодарит

+0

- это IP-адрес удаленного или локального IP-адреса? – Ben

+0

удаленный сервер. –

+0

EADDRNOTAVAIL обычно означает, что порт или IP-адрес недоступны. А 192.168.1.50 - ваш IP-адрес вашей системы? хост должен быть вашим местным адресом. –

ответ

0

Вы можете посылать датаграммы UDP следующим образом (пример кода)

var dgram = require('dgram'); 

var PORT = 12345; 
var HOST = '192.168.1.50'; 
var message = new Buffer('Pinging'); 

var client = dgram.createSocket('udp4'); 
client.send(message, 0, message.length, PORT, HOST, function(err, bytes) { 
    if (err) throw err; 
    console.log('UDP message sent to ' + HOST +':'+ PORT); 
    client.close(); 
}); 

Ссылка: http://www.hacksparrow.com/node-js-udp-server-and-client-example.html

+0

спасибо за помощь, но мне не нужно отправлять сообщения, только чтобы получить их с IP 192.168.1.50 на порт 12345 –

2

Вы не можете связать с адресом удаленного сервера! Неважно, что такое ваш ip-сервер, вы должны привязываться к одному из ваших локальных интерфейсов. Если вы хотите связываться на всех локальных интерфейсах, просто связывайтесь, как показано ниже:

sock.bind(port); 
+0

, то как я могу создать клиент, ожидающий dadagram udp с определенного сервера? (код на сервере уже написан и не будет изменен. он отправляет данные на порт 12345 и IP i дал) –

+0

@ EfratCohen, вы не можете. Вы будете слушать все датаграммы, отправленные на этот IP: порт. Если датаграмма не от кого-то, кого вас интересует, вы можете пропустить ее. – SergeyA

Смежные вопросы