ぐぐってもそれっぽいのがあんまりなかったのでまとめとして。
node.js*1にはBufferという便利なクラスがあるのでそれを使う。
(Websocketでない)Socket通信でバイナリデータをechoサーバーに送って、返ってきたデータを表示するコード。
クライアント
var net = require('net'); var buffer = new Buffer(3); buffer.writeUInt8(0x01, 0); buffer.writeUInt8(0x02, 1); buffer.writeUInt8(0x03, 2); var client = net.connect(8000, "127.0.0.1", function() { client.write(buffer); }); client.on('data', function(data) { for(var i=0;i<data.length;i++) { console.log(data[i]); } client.end(); });
こんな感じで、writeUInt8を使うと簡単に出来る。
サーバー
一応サーバーのほうも。
var net = require('net'); var server = net.createServer(function (socket) { socket.pipe(socket); }); server.listen(8000, "127.0.0.1");
実行結果
1
2
3
*1:ここではv0.6.2を使っている