Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 跟踪哪个UDP套接字接收数据包_Javascript_Node.js - Fatal编程技术网

Javascript 跟踪哪个UDP套接字接收数据包

Javascript 跟踪哪个UDP套接字接收数据包,javascript,node.js,Javascript,Node.js,我目前正在使用NodeJS,我想创建一个包含多个udp4套接字的数组。哪个套接字正在接收消息对我来说很重要,因此我尝试按以下方式存储所有内容: var sockets = []; function startSocket(socketObject) { socketObject.HandleIncomingPacket = function(buffer, header) { if(header.address === this.ip) { co

我目前正在使用NodeJS,我想创建一个包含多个udp4套接字的数组。哪个套接字正在接收消息对我来说很重要,因此我尝试按以下方式存储所有内容:

var sockets = [];

function startSocket(socketObject) {
    socketObject.HandleIncomingPacket = function(buffer, header) {
        if(header.address === this.ip) {
            console.log("ID: "+this.id+" | right IP");
        }else{
            console.log("ID: "+this.id+" | wrong IP. IP expected: "+this.ip+", given: "+header.address);
        }
    }

    socketObject.socket = dgram.createSocket("udp4");
    socketObject.socket.on("message", socketObject.HandleIncomingPacket);
    socketObject.socket.bind(socketObject.port);
    sockets[socketObject.id] = socketObject;
}
用object
{ip:“127.0.0.1”,port:1234}
调用函数可以正常工作(读取:无错误),但在传入的数据包上,我收到以下输出:
ID:undefined |错误的ip。IP预期值:未定义,给定值:127.0.0.1


为什么
这个
在这个上下文中没有定义?甚至有可能做我现在想做的事情吗?我可能错过了一些东西。

我刚刚发现使用
bind()
我得到了我需要的结果。

这是有效的JavaScript吗?我不知道这将如何运行。我使用问题中指定的对象调用函数
startSocket
,然后它运行。我看不出这怎么是无效的?
socketObject.HandleIncomingPacket(缓冲区,标头){
没有多大意义-看起来你试图定义一个函数,但没有
函数
关键字。对不起,我在复制粘贴时意外删除了太多。修复了