我尝试了各种版本的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地址。
答案 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();
});