Tag: udp

不能将UDP发回到内部的PC上,

我安装了两台PC,一台是局域网内的客户端,另一台是公网上的服务器。 testing步骤是 – 1)客户端监听端口33333上的udp 2)服务器端口22222监听udp 1)客户端发送udp到服务器2)服务器接收到数据并发回 当我testing我的testingnetworking上的代码时,没关系。 如果把服务器放在真实的互联网上,服务器可以从客户端获得消息,客户端不能从服务器获得响应。 怎么了? 这里是用nodejstesting代码。 server var dgram = require('dgram'); var socket = dgram.createSocket('udp4'); socket.on('message', function (message, remote) { console.log('client ip:' + remote.address + ', port:' + remote.port +', message:' + message); //send response to client var message = new Buffer("hello, client!"); socket.send(message, 0, message.length, remote.port, remote.address); }); //listening port […]

udp(4)和udp(6)有何区别?

有人可能会忽略udp(4)和udp(6)之间的语法差异和可能的用例差异吗? 我注意到在创build一个数据报套接字时,Node文档中有一些不同之处。

Nodejs集群模式如何处理HTTP保持连接?

如果HTTP连接保持活动状态,那么同一个工作人员是否会处理所有请求? 我希望有一个HTTP服务器处理所有networkingstream量,但是将每个请求的数据处理转交给随机的工作进程,即使这些请求是通过相同的HTTP(TCP)连接进入的: if (cluster.isMaster) { http.createServer(function(req, res) { worker.send(req, function(res) { // worker will generate response into callback parameter res.end(); }); }).listen(80); } else { process.on('message', function(msg) { // generate an http reponse but DO NOT SEND IT OUT A SOCKET, // return it to Master var res = generate_http_response_object(); process.send(res); }); } 这会工作吗?

你是否必须closuresNode.js中的UDP(dgram)客户端,还是可以重用它?

文档 (以及我看过的一些库)似乎表明,每次发送时都closures客户端: var dgram = require('dgram'); var message = new Buffer("Some bytes"); var client = dgram.createSocket("udp4"); client.send(message, 0, message.length, 41234, "localhost", function(err, bytes) { client.close(); }); 我真的不太了解UDP的内部工作原理,但是如果每次要发送一个UDP数据包,都会阻止你重复使用client呢? 你必须 close()吗? 我已经在localhosttesting了它(也就是重用客户端),并且发送了多个数据包(至less到了同一个目的地),但是这还不是一个足够的testing来保证在大的在那里广泛的世界。 send()的源头调用一个_startReceiving()函数,该函数“绑定到一个随机端口”,然后“开始接收” – 但我不清楚应该在这里接收什么,因为我们实际上是在发送。 无论如何,这足以让我觉得可能有与保持一个客户的问题…我只是不知道他们是什么。

Node.JS通过UDP到OSC

我安装了Node.js并集成了Socket.io 。 在一个名为“appudp.js”的文件中,我有以下代码: var dgram = require('dgram'); var message = new Buffer("5656"); // Whatever the number could be… var client = dgram.createSocket("udp4"); client.on("error", function (err) { console.log("Socket error: " + err); }); // At every second, send a message… setInterval(function(){ client.send(message, 0, message.length, 1337, "127.0.0.1", function(err, bytes) { console.log("err : " + err + " […]

将数据从UDP套接字转发到HTTP服务器Node.js

我正在寻找通过UDP连接正在检索的数据创build一个Web服务,并决定使用Node.js和Socket.IO但是,已经来到短期,我认为这种组合不会给我我想要的结果。 我希望有人能指引我正确的方向。 现在,我有以下几点: // require http, socket and socket.io var http = require('http'); var dgram = require('dgram'); var socketio = require('socket.io'); // setup HTTP server, Socket.IO and UDP Socket var server = http.createServer( handleRequest ), io = socketio.listen(server), socket = dgram.createSocket("udp4"); // Every time I receive a UDP Message socket.on("message", function(msg,rinfo) { // create a […]

在Win 7上使用UDP绑定的Nodejs EINVAL错误

我得到一个UDP绑定错误EINVAL只在nodejs 10.5在Windows 7上。节点6和8不会失败,它在linux下工作。 这至less是因为我在windows下做了所有基本的开发。 一个odf大节点的优点。 绑定调用(以新的asynchronousforms)失败,而且发送方法中的内部绑定失败。 其实我只想发送数据(广播),所以我通常不会绑定套接字,但是,发送方法自动执行此操作。 我已经通过使用绑定方法validation了这一点,这也失败了。 Created Dgram socket 255.255.255.255:3001 events.js:72 throw er; // Unhandled 'error' eve ^ Error: bind EINVAL at errnoException (dgram.js:440:11) at dgram.js:207:28 at dns.js:72:18 at process._tickCallback (node.js:415: 从错误堆栈:当地址被指定为地址而不是string时,为什么使用DNS发送呼叫? 有人可以请validation发送工作在Windows 7在10.5非常感谢

Node.js UDPstream

我试图“移植”一些代码从PHP到节点和im努力找出如何得到它的工作。 我试图通过UDP连接到RCON服务器。 以下是PHP版本的简化版本: $address = '1.2.3.4:1234'; $password = 'password'; $socket = stream_socket_client('udp://' . $address, $errno, $errstr); stream_set_blocking($socket, 0); $loginRequest = chr(0x45) . $password; stream_socket_sendto($socket, $loginRequest, 0, $address); echo 'RCON Login Request Sent' . PHP_EOL; echo $loginRequest . PHP_EOL; echo PHP_EOL; do { $data = stream_socket_recvfrom($socket, 127, 0, $address); } while (!$data); echo 'RCON Received Response' […]

如何在Node.js中将UDP广播结果输出到http服务器?

我试图redirect一个简单的UDP广播结果,其中包含几个来自不同设备的(2秒)延迟消息,并将结果呈现为http响应。 下面的代码运行良好,我可以看到收集到的广播消息与console.log,但networking响应是空的。 如何正确实现这个? var dgram = require("dgram"); var http = require('http'); function broadcast(callback) { var data = ''; var server = dgram.createSocket("udp4"); server.on("message", function (message, rinfo) { data += message; }) server.bind(11000); var socket = dgram.createSocket("udp4"); socket.bind(); socket.setBroadcast(true); socket.send(Buffer([3]), 0, 1, 11001, '255.255.255.255', function(err, bytes) { socket.close(); }); // dealy to collect all messages in […]

NodeJS缓冲区分割,string和二进制

我有3个信息需要发送一个UDP数据包,userID(int),authentication码(string)和二进制数据。 我将如何能够立即发送这些项目,并能够在另一端拆分它们。 我已经尝试连接三个缓冲区的信息,但不能想办法在另一端拆分它们,因为UID和授权码的长度会有所不同。