簡體   English   中英

使用node.js監聽udp數據報

[英]using node.js to listen for udp datagrams

我正在一個項目中,其中C應用程序從端口44044發送udp數據報,並且我想使用node.js v0.10.20將這些數據包簡單地回顯到控制台。

我使用經典示例進行連接:

var dgram = require('dgram');
var port = 44044;

socket = dgram.createSocket('udp4');

socket.on('message', function (msg, info){
    console.log(msg.toString());
 });

socket.on('listening', function(){
    var address = socket.address();
    console.log("listening on :" = address.address + ":" + address.port);
});

socket.bind(port);

但是,當我運行該示例時,我的C應用程序抱怨它用於廣播的端口44044已被使用。 相反,如果我先啟動C應用程序,則node.js應用程序將立即返回錯誤“錯誤:綁定EADDRINUSE”。

現在,我知道這意味着我有兩個試圖在同一端口上服務的服務器。 但是我沒有得到的是如何獲得一個節點線程,該線程將偵聽端口44044上的udp廣播? 閱讀node.js文檔並沒有幫助我解決此問題。

嘗試在C程序和節點應用程序中使用SO_REUSEADDR

socket = dgram.createSocket({ type: 'udp4', reuseAddr: true });

代替:

socket = dgram.createSocket('udp4');

C應用程序端口44044 發送 。它將發送到哪個端口? 那是您的node.js程序需要偵聽的端口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM