node.js缓冲区的二进制输出是不同的

这让我很困惑。 我在node.js中有以下套接字服务器(简化):

net.createServer(function (socket) { socket.on('data', function (data) { var replyData = new Buffer('78780E00C425BA53269830303000006C2D0D0A', 'hex').toString('binary'); socket.end(replyData); }); }).listen(config.port); 

我期望它回复任何客户端是在缓冲区中以hex指定的二进制文件,但实际上它回复:78780E00C38425C2BA5326C298303030006C2D0D0A

这是相似的,但不完全是它应该发送。 我错过了什么?

这很简单,只需将一个Buffer直接传递到您的套接字:

 var net = require('net'); net.createServer(function (socket) { socket.on('data', function (data) { socket.end(new Buffer('78780E00C425BA53269830303000006C2D0D0A', 'hex')); }); }).listen(config.port); 

编辑 :只是重读你的问题,并找出你的问题是没有得到的二进制数据。 尽pipe如此,我的代码适合我:

 laurent〜/ dev / test $ wget http:// localhost:3001 --output-document = data
 laurent〜/ dev / test $ hexdump数据
 0000000 78 78 0e 00 c4 25 ba 53 26 98 30 30 30 00 00 6c
 0000010 2d 0d 0a                                       
 0000013

告诉我,如果你有不同的东西。