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);
有帮助吗?
感谢
您可以通过以下方式发送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
引发的异常感谢您的帮助,但是,我不需要发送消息,只需要从IP 192.168.1.50接收它们端口12345 –
不能绑定到远程服务器地址!无论你的服务器IP是什么,你都应该绑定到你的一个本地接口。如果要绑定所有本地接口,只需绑定如下:
sock.bind(port);
那么我如何创建一个客户端,它正在等待来自特定服务器的udp dadagram? (服务器中的代码已经写入,不会被改变,他正在发送端口12345上的数据和我给出的IP) –
@EfratCohen,你不能。您将监听发送到此IP:端口的所有数据报。如果数据报不是来自你感兴趣的人,你可以跳过它。 – SergeyA
是IP是远程还是本地IP地址? – Ben
远程服务器。 –
EADDRNOTAVAIL通常表示端口或IP地址不可用。而192.168.1.50是你的系统IP地址?主机应该是你的本地地址。 –