Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用nodejs发送udp包?_Javascript_Node.js_Ubuntu_Udp - Fatal编程技术网

Javascript 如何使用nodejs发送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

嗯,我有一个小路线,应该发送一个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时,我注意到邮递员收到了回复
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)