当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。