好的,我有一个小路线,应该发送一个UDP数据包并打印确认。根据节点上的文档,以下内容应该可以正常工作:
const dgram = require('dgram');
export async function sendUDP(sess, parameters: {}, res) {
const client = dgram.createSocket('udp4');
client.send('Hello World!',0, 12, 12000, '127.0.0.1', function(err, bytes) {
client.close();
});
//res is the response object from express
return res.send("Send udp packet");
}
应该向回调IP(本地机器)的端口12000发送一个UDP请求。还要发送一个回复,说明已经发送了UDP数据包。
当我向正确的URL发送请求时,我注意到在Postman中收到了回复Send udp packet
。所以这个部分是可以工作的。
然而,UDP数据包似乎丢失了,在我的本地Ubuntu上使用tcpdump
却没有任何结果:
sudo tcpdump -n udp port 12000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlp5s0, link-type EN10MB (Ethernet), capture size 262144 bytes
0 packets captured
0 packets received by filter
0 packets dropped by kernel
(当然在测试功能时tcpdump已经一直在运行)。UDP请求会去哪里? 发生了什么?
我希望有一个生活记录器,这样我就可以轻松地使用udp测试nodejs应用程序。