UDP套接字

UDP套接字

问题描述:

我想了解如何使用Node.js的UDP套接字连接到UDP套接字另一台计算机上,我收到以下错误:UDP套接字

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地址?主机应该是你的本地地址。 –

您可以通过以下方式发送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 –

不能绑定到远程服务器地址!无论你的服务器IP是什么,你都应该绑定到你的一个本地接口。如果要绑定所有本地接口,只需绑定如下:

sock.bind(port); 
+0

那么我如何创建一个客户端,它正在等待来自特定服务器的udp dadagram? (服务器中的代码已经写入,不会被改变,他正在发送端口12345上的数据和我给出的IP) –

+0

@EfratCohen,你不能。您将监听发送到此IP:端口的所有数据报。如果数据报不是来自你感兴趣的人,你可以跳过它。 – SergeyA