Tag: udp

当服务器一次发送超过1000条消息时,不能超过1000条消息nodejs udp

我写应用程序来发送文件多播由nodejs我读块文件并发送块像这样 for (var block = 1; block <= number_of_block; block++) { sendBlock(FILEPATH, block) 函数sendBlock由CHUNK function sendBlock(file, block) { fs.open(file, 'r', function(err, fp) { if (err) { return; } var buf = new Buffer(4 + CHUNK_SIZE); fs.read(fp, buf, 4, CHUNK_SIZE, (block – 1) * CHUNK_SIZE, function(err, bytesRead) { if (err) { } buf[0] = 0; buf[1] […]

用node.js中的UDP和dgram获取远程ip地址

是否有可能获得发送一个UDP请求到我的节点应用程序的客户端的IP地址? 该应用程序在我的本地networking中使用,我想根据地址过滤请求。 当我尝试使用rinfo-object中提供的地址获取消息事件时,我只是得到了路由器地址,这对我没有多大帮助。 我知道,当我使用节点net-library时,通过request.headers ['X-Forwarded-For']可以获得客户端的IP地址,但是在dgram中似乎没有这样的东西。 你有什么想法?

指定UDP服务器的主机地址?

所以我可以select在UDP服务器上设置地址和端口。 根据文档,如果没有指定地址,则UDP服务器绑定到0.0.0.0:port 。 该文档说明如下: If address is not specified, the OS will try to listen on all addresses 。 为什么我(或为什么不)指定要绑定的主机? 如果你有多个网卡,你只想听一个 – 所以我会指定我想听的网卡的IP?

Arduino与Node.js不工作

我正在研究一个有Arduino Uno的项目,并使用UDP连接,将数据发送到运行Node.js模块的Mac,以获取数据并将其打印出来。 这是我的Arduino代码: #include <SPI.h> #include <Ethernet.h> #include <EthernetUdp.h> //Import the necessary packages. byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //Arduino's MAC address. IPAddress IP(192, 168, 1, 152); //Arduino's IP address. unsigned int arduinoPort = 8888; //Arduino's transmission port. IPAddress recieverIP(192, 168, 1, 77); //Mac's IP address. unsigned int recieverPort = 6000; //Mac's […]

Node.js:一次接收太多的UDP消息,丢失它们

我的节点服务器在一秒钟内收到大约400个UDP消息 ,这一切都能正常工作 ,而且我能够处理所有400个消息。 但是,当我开始在一秒钟内收到大约700个UDP消息时, 我失去了2-20个消息,并且它们永远不会被parsing:( 我在这里想过一些select : 创build一个所有套接字消息的队列 ,然后逐个消费,尽pipe我不知道如何实现这个 无法弄清楚如何实施 在Node / Express / dgram套接字find一个设置 ,我可以增加内存大小/缓冲区大小,类似的东西 我找不到像这样的设置,虽然:( 使用不同的UDP接收器 ,停止使用节点的套接字UDP接收器 没有find其他接收器 这是我的UDP发件人的样子: var dgram = require("dgram"); var udpserver = dgram.createSocket("udp4"); var seatStateStore = require("./SeatStateStore"); udpserver.on("message", function (msg, rinfo) { seatStateStore.parseMessage(msg.toString()); }); 有人有主意吗? 我找不出3个选项中的任何一个:/有人可以帮我吗? 节点v0.10.29 Express v3.14.0 =============================== 更新/解决scheme 这里是我最终使用的代码(略微修改@RoyHB的解决scheme): var dgram = require("dgram"); var udpserver = […]

网易的柚子是使用Udp还是Tcp?

我最近决定使用Nodejs(服务器)和Unity3D(客户端)制作多人FPS游戏。 我已经用socket.io做了一个POC,并将它部署在了heroku上,testing失败了(分组交付太慢,造成了延迟)。 挖了四周后,我发现socket.io使用的TCP不适合面对节奏的FPS游戏。 然后我碰到了柚子,这似乎很有趣。 但在我花时间在POC之前,我需要知道。 柚子只使用TCP还是支持UDP? 谢谢 :)

是否有可能在浏览器中运行Adobe Air应用程序?

我正在学习本教程 , 该教程描述了使用adobe动作脚本3.0连接node.js应用程序的方式。 这样,我可以将实时video数据(由不同应用程序的UDP接收)呈现给其他用户。 我的问题是 – 是否有可能使接收到的数据embedded到我的HTML / PHP网站的video播放器? 我查了一下官方文档 ,里面有一句话: The DatagramSocket class can only be used in Adobe AIR applications and only in the application security sandbox. 并在这个论坛上有人写道: You can run an Adobe Air application FROM the browser. But you cannot run an Adobe Air applicatin WITHIN the browser. Indeed, Adobe Air wraps […]

UDP多播广播节点

我正在尝试创build一个基于UDP多播的聊天程序,这个想法是本地networking上的任何人都可以popup并开始input和发送消息。 我认为每个客户端都需要两个套接字,一个发送消息,另一个接收消息。 简而言之,这就是我现在所拥有的: "using strict"; const multicast_addr = "224.1.1.1", bin_addr = "0.0.0.0", port = 6811; var udp = require("dgram"); var listener = udp.createSocket("udp4"), sender = udp.createSocket("udp4"); listener.bind(port, multicast_addr, function(){ listener.addMembership(multicast_addr); listener.setBroadcast(true); }); listener.on("message", function (b, other) { console.log(b.toString().trim()); }); process.stdin.on("data", function (data){ sender.send(data, 0, data.length, port, multicast_addr); }); (不要介意回声,这是应用程序逻辑将build立在顶部) 这会将消息回显给运行代码的人,但是我也同时在同一台计算机OS X上的linux VM上运行这个消息,但是根本没有看到消息被传递。 我不确定这是否意味着 1)我的代码不正确 2)虚拟机与主机有相同的networking? […]

Node.js DGRAM模块:不能将UDP消息发送到远程机器,但可以发送到本地机器

我正在使用Nodejs的dgram模块运行一个简单的UDP服务器。 相关的代码很简单: server = dgram.createSocket('udp4'); server.bind(10022,'127.0.0.1'); 当我在本地机器上netstat,使用这个: sudo netstat -l 我看到这个条目: Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 localhost:10022 *:* 当我使用接口的IP地址从远程计算机执行nmap时: sudo nmap -sU -p 10022 192.168.7.171 我看到这个: Nmap scan report for 192.168.7.171 Host is up (0.00032s latency). PORT STATE SERVICE 10022/udp closed unknown 我使用server.bind(10022,'127.0.0.1'),运行在同一台机器上的UDP客户端代码正常工作,如上所述。 当我使用分配给接口的真实IP地址时,它不会。 我也想使用来自远程机器的客户端代码。 所以,当我使用server.bind(10022,'192.168.7.171')代替server.bind(10022,'127.0.0.1')时,我希望能够将消息发送到远程的UDP进程机。 我不能。 有趣的是,远程机器上的send函数的callback也不会返回错误。 如何获得远程机器上的客户端代码发送消息到UDP服务器。 […]

nodejs + express:使http请求等待udp响应

我是一个nodejs web(express)应用程序 ,当有人(UI)向我发送获取请求时,我发送一个udp请求给另一个人,期待他的回复,当udp服务器(我的一部分)收到回复从他那里,我把它发回给httpget请求的那个人。 如何使httprequest等待,直到收到一个udp响应? 如何设置udp服务器和我的控制器之间的通信/操作方法已得到一个httpget请求。 我已经尝试了“setTimeOut”function,但请求不会等待它。 我从我的控制器/操作调用这个sendMessage: module.exports.sendMessage = function (ip, port, message) { var msg = new Buffer(message); var dgram = require('dgram'); var client = dgram.createSocket('udp4'); client.send(msg, 0, msg.length, port, ip, function (err, bytes) { if (err) throw err; console.log('UDP message sent to ' + ip + ':' + port); client.close(); }); } 控制器/操作码: […]