nodejsを利用してUDPプログラミングを行います.
2954 ワード
nodejsを利用してUDPプログラミングを行います.、準備作業、モジュールの紹介 、ケース 、コード実現 クライアント サーバ 運転 一、準備作業、モジュールの紹介は、UDPパケットsocketの実現を提供するdgram(パケット)を導入する.モジュールはUDPパケットsocketの実現を提供します.詳しく知りたいのですが、このパッケージ文書の公式サイトをご覧ください.link.送信情報の関数紹介を実現します. Readlineパッケージを導入し、nodejs入出力に使用します. は、関連関数 を呼び出します.
二、ケース
UDPに基づいて、クライアントにコンテンツクライアントを入力してサーバに送信する.サーバが受信して出力します.
三、コード実現
クライアント
クライアントファイル、サーバファイルはそれぞれ実行できます.
socket.send(msg[, offset, length][, port][, address][, callback])
msg | | | 。
offset buffer 。
length 。
port 。
address IP 。
callback 。
const readline = require('readline');
// interface
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question(' Node.js ?', (answer) => {
// answer
console.log(` :${answer}`);
// interface
rl.close();
});
二、ケース
UDPに基づいて、クライアントにコンテンツクライアントを入力してサーバに送信する.サーバが受信して出力します.
三、コード実現
クライアント
// dgram、realine
const dgram = require('dgram');
const readline = require("readline");
// Socket
const clientSocket = dgram.createSocket('udp4');
// interface
const rl = readline.createInterface({
input: process.stdin,
output:process.stdout
});
var num = "123";
console.log(' ');
// ,
// await, , , 。
//
function rejectNum() {
return new Promise(resolve => {
rl.on('line', function(line){
// num = line;
resolve(line);
rl.close();
});
});
}
// , 。
async function read(){
num = await rejectNum();
//
clientSocket.send(num, 0, num.length, 7, 'localhost');
}
read();
// ,
clientSocket.on('error', function(err){
console.log('error, msg - %s, stack - %s
', err.message, err.stack);
});
//
clientSocket.bind(4000);
//
//
サーバconst dgram = require('dgram');
const serverSocket = dgram.createSocket('udp4');
serverSocket.on('message', (msg, rinfo)=>{
console.log('recv %s(%d bytes) from client %s:%d
', msg, 1, rinfo.address, rinfo.port);
console.log('Server : %s
', msg);
});
serverSocket.on('error', function(err){
console.log('error, msg - %s, stack - %s
', err.message, err.stack);
});
serverSocket.on('listening', function(){
console.log("server is listening on port 7.");
});
serverSocket.bind(7);
//
//server is listening on port 7.
//recv hi(1 bytes) from client 127.0.0.1:4000
//Server : hi
実行クライアントファイル、サーバファイルはそれぞれ実行できます.