Module 基礎模組

模組dgram

dgram 基礎模組之一,主要用於實作UDP 封包socket 的封裝。

使用步驟:

  1. 首先,透過下面的語句引入dgram 模組。

    1
    var dgram = require('dgram');
  2. 建立UDP 封包socket 實例。

    1
    var sock = dgram.createSocket('udp4');
  3. 為UDP 封包socket 註冊資料接收事件訊息回呼函數。

    1 2 3
    sock.on('message', function (msg, rinfo) { // process received message });
  4. 發送UDP 封包訊息到指定目標位址。

    1 2 3 4 5
    var msg = ...; // message to send var port = ...; // destination port var host = ...; // destination host var bytes = sock.send(msg, 0, msg.length, port, host); console.log('UDP message sent to ' + host + ':' + port);

物件

Socket

dgram.Socket物件是一個封裝了資料包函數功能的EventEmitter參見DgramSocket

1
DgramSocket dgram.Socket;

dgram.Socket實例是由dgram.createSocket() 創建的。創建dgram.Socket實例不需要使用new 關鍵字。

靜態函數

createSocket

創建一個dgram.Socket物件

1
static DgramSocket dgram.createSocket(Object opts);

呼叫參數:

  • opts: Object,

回傳結果:

opts 允許的選項是:

1 2 3 4 5 6 7
{ "type": "udp4" | "udp6", // socket type "reuseAddr": true | false, // reuse address, default is false "ipv6Only": true | false, // only accept IPv6 packets, default is false "recvBufferSize": 1024, // specify the size of the receive buffer "sendBufferSize": 1024 // specify the size of the send buffer }

創建一個dgram.Socket物件

1 2
static DgramSocket dgram.createSocket(Object opts, Function callback);

呼叫參數:

  • opts: Object,
  • callback: Function, 為'message' 事件新增一個監聽器。

回傳結果:

opts 允許的選項是:

1 2 3 4 5 6 7
{ "type": "udp4" | "udp6", // socket type "reuseAddr": true | false, // reuse address, default is false "ipv6Only": true | false, // only accept IPv6 packets, default is false "recvBufferSize": 1024, // specify the size of the receive buffer "sendBufferSize": 1024 // specify the size of the send buffer }

創建一個dgram.Socket物件

1
static DgramSocket dgram.createSocket(String type);

呼叫參數:

  • type: String, 套接字族,'udp4' 或'udp6'。

回傳結果:


創建一個dgram.Socket物件

1 2
static DgramSocket dgram.createSocket(String type, Function callback);

呼叫參數:

  • type: String, 套接字族,'udp4' 或'udp6'。
  • callback: Function, 為'message' 事件新增一個監聽器。

回傳結果: