node.js 错误 (dgram.js) throw new TypeError('First argument must be a buffer object.');
node.js Error (dgram.js) throw new TypeError('First argument must be a buffer object.');
我在 nodejs 中为 Intel Galileo 开发了一个服务器,它在 windows.
的 nodejs 上运行得非常好
问题是当我试图 运行 它进入 Intel Galileo 时。它给了我这个错误:
dgram.js:248
throw new TypeError('First argument must be a buffer object.');
^
TypeError: First argument must be a buffer object.
at Socket.send (dgram.js:248:11)
at Socket.<anonymous> (/media/mmcblk0p1/Server/server2.js:21:12)
at Socket.g (events.js:180:16)
at Socket.EventEmitter.emit (events.js:92:17)
at startListening (dgram.js:141:10)
at dgram.js:216:7
at dns.js:72:18
at process._tickCallback (node.js:415:13)
at Function.Module.runMain (module.js:499:11)
at startup (node.js:119:16)
出现错误的代码:
var dgram=require("dgram");
var udpServer=dgram.createSocket("udp4");
udpServer.bind(8888, function(){
udpServer.setBroadcast(true);
udpServer.send("HIA",0,3,8888,"255.255.255.255",function(err){if(err)console.log(err)});
});
我正在尝试发送带有文本 "HIA" 的广播消息,但它似乎需要一个缓冲区作为参数。这不是 API 所说的...
我猜问题是 Intel Galileo 有不同版本的 Node,但我尝试更新它但没有成功。
因此请改用 Buffer
:
var message = new Buffer('HIA');
udpServer.send(message, 0, message.length, ...)
我在 nodejs 中为 Intel Galileo 开发了一个服务器,它在 windows.
的 nodejs 上运行得非常好问题是当我试图 运行 它进入 Intel Galileo 时。它给了我这个错误:
dgram.js:248
throw new TypeError('First argument must be a buffer object.');
^
TypeError: First argument must be a buffer object.
at Socket.send (dgram.js:248:11)
at Socket.<anonymous> (/media/mmcblk0p1/Server/server2.js:21:12)
at Socket.g (events.js:180:16)
at Socket.EventEmitter.emit (events.js:92:17)
at startListening (dgram.js:141:10)
at dgram.js:216:7
at dns.js:72:18
at process._tickCallback (node.js:415:13)
at Function.Module.runMain (module.js:499:11)
at startup (node.js:119:16)
出现错误的代码:
var dgram=require("dgram");
var udpServer=dgram.createSocket("udp4");
udpServer.bind(8888, function(){
udpServer.setBroadcast(true);
udpServer.send("HIA",0,3,8888,"255.255.255.255",function(err){if(err)console.log(err)});
});
我正在尝试发送带有文本 "HIA" 的广播消息,但它似乎需要一个缓冲区作为参数。这不是 API 所说的...
我猜问题是 Intel Galileo 有不同版本的 Node,但我尝试更新它但没有成功。
因此请改用 Buffer
:
var message = new Buffer('HIA');
udpServer.send(message, 0, message.length, ...)