小さいpingスクリプトを作成したいと思います。私はノードjsの初心者です。私の最終的な小さな目標は、クライアントにサーバーにpingをさせることです。私はサーバーがコンソールにメッセージを記録することによってパケットを確認し、同じパケット/メッセージをクライアントに送り返したいと思っています。ノードJS:PingサーバーとクライアントUDP
は、これは私がこれまで持っているものです。
サーバー:
var PORT = 33333;
var HOST = '127.0.0.1';
var dgram = require('dgram');
var server = dgram.createSocket('udp4');
server.on('listening', function() {
var address = server.address();
console.log('UDP Server listening on ' + address.address + ":" + address.port);
});
server.on('message', function (message, remote) {
console.log(remote.address + ':' + remote.port +' - ' + message);
// I added a server.send but it gave me an infinite loop in the server console
});
server.bind(PORT, HOST);
クライアント:
var PORT = 33333;
var HOST = '127.0.0.1';
var dgram = require('dgram');
var message = new Buffer('My KungFu is Good!');
var client = dgram.createSocket('udp4');
client.on('message', function (message, remote) {
console.log("The packet came back");
});
client.send(message, 0, message.length, PORT, HOST, function(err, bytes) {
if (err) throw err;
console.log('UDP message sent to ' + HOST +':'+ PORT);
count++;
});
UPDATE:
ありがとう!それが本当に助けになりました。 しかし私は別の質問があります。 パケットを特定のバイト数で送信したいとします。 私は1kbのために 'message.length'を1000に置き換えますか? しかし、私は '新しいエラー('オフセット+バッファの長さを超えて長さ ');をスローするエラーが発生しました;
私はなぜそれほど理解できません。
ありがとう:
はここでの例です!それが本当に助けになりました。 しかし私は別の質問があります。 パケットを特定のバイト数で送信したいとします。 私は1kbのために 'message.length'を1000に置き換えますか? しかし、私は '新しいエラー('オフセット+バッファの長さを超えて長さ ');をスローするエラーが発生しました; 私はなぜそれほど理解できません。 –
あなたのバッファは18バイトの長さです( "My KungFu is Good!"長さ、デフォルトのコーデックは文字あたりASCII /バイナリバイトです)。 'var message = new Buffer(1000);'でメッセージを作成して1000バイトを送信する –