NodeJs簡明教程(10)

2627 ワード

NodeJs簡明教程はゼロからNodeJs関連の知識を学び、JS開発者を支援して全スタック開発技術スタックを構築します.
注意して、より多くのNodeJs を取得する.
本論文はNodeJs簡明教程の第10編で、NodeJs dgramモジュール(UDP / )に関する基本的な操作を紹介します.
何がUDPですか
Internetプロトコルセットは、ユーザデータグラムプロトコル(UDP、User Datagram Protocol)と呼ばれる接続されていない転送プロトコルをサポートする.UDPはアプリケーションに接続を確立することなくパッケージのIPデータグラムを送信する方法を提供しています.RFC 768はUDPを記述している.
NodeJsはdgram を使用してUDP / 関連機能を実現する.dgram.createSocketは、ソケットオブジェクトを作成するために使用され、このセット・インターフェース または のデータに基づくことができる.この方法の原型は以下の通りである.dgram.createSocket(type[, callback])
  • type socketタイプ.udp4またはudp6に対応して、ipv4および
  • に対応しています.
  • calback ipv6がメッセージを受信したときのコールバック関数
  • Echoサービス開発
    server.js
    const dgram = require('dgram');
    const socket = dgram.createSocket('udp4');
    
    socket.on('error', function(err) { //   socket  
        console.log('     ', err);
        socket.close();
    });
    
    socket.on('message',function(msg,sender) { //       
        console.log('%s:%d => %s', sender.address,sender.port,msg.toString()); //         
        socket.send('socket: '+msg.toString(),sender.port,sender.address,function(err) { //          
            if(err) {
                console.log('  %s:%d  : %s',sender.address,sender.port,err.message);
                return;
            }
       });
    });
    
    socket.bind(10000, function() { //   UDP  
        console.log('        %s:%d', socket.address().address, socket.address().port);
    });
    Echoクライアント開発接続サーバはtelnetを使用しているので、本明細書で対応するクライアントはNodeJs開発を使用する必要がある.
    client.js
    const dgram = require('dgram');
    
    const socket = dgram.createSocket('udp4'); //   socket  
    
    socket.on('message', function(msg,sender) { //       
        console.log('   %s:%d   :%s',sender.address,sender.port,msg.toString());
        socket.close();
    });
    
    socket.send('hello',10000,function(err) { //          
        if(err) {
            console.log('    ', err);
            return;
        }
        console.log('    ');
    });
    実行
  • 端末はTCP を実行し、
            0.0.0.0:10000
  • を出力する.
  • 端末はnode server.jsを実行し、
        
       127.0.0.1:10000   :server: hello
  • を出力する.
  • サービス端末出力:
    127.0.0.1:50577 => hello
  • おわりに
    NodeJs UDPサーバーとクライアントの開発はここで終わりますが、UDPを使う場合、パケットの確認、流量制御などの操作はプログラマが手動で行う必要があります.この面は確かに複雑です.特に要求がない場合はTCPを使えばいいです.