Javascript 如何使用nodejs发送udp包?
嗯,我有一个小路线,应该发送一个UDP包并打印一份确认书。根据节点上的文档,以下各项可以正常工作:Javascript 如何使用nodejs发送udp包?,javascript,node.js,ubuntu,udp,Javascript,Node.js,Ubuntu,Udp,嗯,我有一个小路线,应该发送一个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', fun
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时,我注意到邮递员收到了回复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请求去哪里?发生了什么事
我希望有一个life logger,这样我就可以轻松地使用udp测试nodejs应用程序。您需要告诉tcpdump它需要监听的接口 tcpdump-i lo udp端口12000 lo是localhost的接口 更多信息在此 如果要保存流量日志,可以使用 我用“!(udp.port==53 | | tcp.port==53)&&udp'作为筛选器,仅查找udp数据包 我将此代码添加到我的服务器,并将udp数据包发送到服务器以打印内容
const dgram=require('dgram');
const serverUDP=dgram.createSocket('udp4');
serverUDP.on('error',(err)=>{
log(`serverUDP错误:\n${err.stack}`);
serverUDP.close();
});
serverUDP.on('message',(msg,rinfo)=>{
log(`serverUDP get:${msg}来自${rinfo.address}:${rinfo.port}`);
});
serverUDP.on('正在侦听',()=>{
const address=serverUDP.address();
log(`serverUDP侦听${address.address}:${address.port}`);
});
serverUDP.bind(3001)代码>