ノードjsがn個のパケットを送信するのにかかる時間を把握しようとしています。私の最終的な目標は、ネットワークの伝送遅延を見つけることです。前のパケットが完了するまで次のパケットが送信されないように、再帰関数を実行しました。これまでの私のコードは次のとおりです。私はそれを正しくやっていますか?
var sizes=[200,400,600,800,1000];
// NOTE: the port is different
var host = "127.0.0.1", port = 33334;
var dgram = require( "dgram" );
var client = dgram.createSocket( "udp4" );
/*
client.on( "message", function( msg, rinfo ) {
var end = new Date().getTime();
var total = end - start;
console.log( "The packet came back in "+ total+" MiliSeconds");
});
*/
// client listens on a port as well in order to receive ping
client.bind( port, host );
var number_packets = 50;
var packet_size = 100;
var count = 0;
var end;
var start = new Date().getTime();
var message = new Buffer(packet_size);
send(message);
function send(message) {
client.send(message, 0, message.length, 33333, "127.0.0.1", function(err, bytes){
count++;
console.log("pkt #: "+count);
if(count < number_packets)
send(message);
if( count >= number_packets ) {
end = new Date().getTime();
var total = end - start;
console.log("total: "+total);
}
} );
}
パケットを受信し、パケットを受信したことをコンソールに書き込む server.js があります。