當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js dgram.createSocket(options[, callback])用法及代碼示例


dgram.createSocket(options[, callback])

曆史
版本變化
v15.8.0

添加了AbortSignal 支持。

v11.4.0

支持ipv6Only 選項。

v8.7.0

現在支持 recvBufferSizesendBufferSize 選項。

v8.6.0

支持lookup 選項。

v0.11.13

添加於:v0.11.13


參數
  • options <Object>可用選項有:
    • type <string> 套接字家族。必須是 'udp4''udp6' 。必需的。
    • reuseAddr <boolean> When true socket.bind() 將重用該地址,即使另一個進程已經在其上綁定了套接字。 默認: false
    • ipv6Only <boolean>ipv6Only 設置為 true 將禁用 dual-stack 支持,即綁定到地址 :: 不會使 0.0.0.0 被綁定。 默認: false
    • recvBufferSize <number> 設置 SO_RCVBUF 套接字值。
    • sendBufferSize <number> 設置 SO_SNDBUF 套接字值。
    • lookup <Function> 自定義查找函數。 默認: dns.lookup()
    • signal <AbortSignal> AbortSignal 可用於關閉套接字。
  • callback <Function> 作為 'message' 事件的偵聽器附加。可選的。
  • 返回: <dgram.Socket>

創建一個dgram.Socket 對象。創建套接字後,調用 socket.bind() 將指示套接字開始偵聽數據報消息。當 addressport 未傳遞給 socket.bind() 時,該方法會將套接字綁定到隨機端口上的 "all interfaces" 地址(它對 udp4udp6 套接字都做了正確的事情)。可以使用 socket.address().address socket.address().port 檢索綁定的地址和端口。

如果啟用了signal 選項,則在相應的AbortController 上調用.abort() 類似於在套接字上調用.close()

const controller = new AbortController();
const { signal } = controller;
const server = dgram.createSocket({ type: 'udp4', signal });
server.on('message', (msg, rinfo) => {
  console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
});
// Later, when you want to close the server.
controller.abort();

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 dgram.createSocket(options[, callback])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。