如何在Node.js中通过dgram发送UDP数据包?

时间:2018-11-29 13:58:14

标签: node.js sockets udp dgrams

我尝试了各种版本的Node.js数据报套接字模块的send函数:

var dgram = require('dgram');

var client = dgram.createSocket('udp4');

client.send('Hello World!',0, 12, 12000, '127.0.0.1', function(err, bytes) {});
client.send('Hello2World!',0, 12, 12000, '127.0.0.1');
client.send('Hello3World!',12000, '127.0.0.1');

client.close();

我的服务器可以与另一个客户端一起使用,但不能与另一个客户端一起使用,没有任何数据包到达。

Nodejs' dgram send documentation

socket.send(msg[, offset, length], port[, address][, callback])

我填写的参数是否有问题或其他原因导致失败?在服务器程序中,我确实使用了端口12000和回送IP地址。

1 个答案:

答案 0 :(得分:1)

尝试在最后发送的消息的回调中关闭套接字。然后,仅在发送消息后,套接字才会关闭。

var dgram = require('dgram');

var client = dgram.createSocket('udp4');

client.send('Hello World!',0, 12, 12000, '127.0.0.1');
client.send('Hello2World!',0, 12, 12000, '127.0.0.1');
client.send('Hello3World!',0, 12, 12000, '127.0.0.1', function(err, bytes) {
client.close();
});