[英]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.