dgram.createSocket(options[, callback])
-
options<Object> 可用的选项有:¥
options<Object> Available options are:-
type<string> 套接字家族。必须是'udp4'或'udp6'。必需的。¥
type<string> The family of socket. Must be either'udp4'or'udp6'. Required. -
reuseAddr<boolean> 当truesocket.bind()将重用该地址时,即使另一个进程已经在其上绑定了套接字。默认值:false。¥
reuseAddr<boolean> Whentruesocket.bind()will reuse the address, even if another process has already bound a socket on it. Default:false. -
ipv6Only<boolean> 将ipv6Only设置为true将禁用双栈支持,即绑定到地址::不会使0.0.0.0被绑定。默认值:false。¥
ipv6Only<boolean> Settingipv6Onlytotruewill disable dual-stack support, i.e., binding to address::won't make0.0.0.0be bound. Default:false. -
recvBufferSize<number> 设置SO_RCVBUF套接字值。¥
recvBufferSize<number> Sets theSO_RCVBUFsocket value. -
sendBufferSize<number> 设置SO_SNDBUF套接字值。¥
sendBufferSize<number> Sets theSO_SNDBUFsocket value. -
lookup<Function> 自定义查找函数。默认值:dns.lookup()。¥
lookup<Function> Custom lookup function. Default:dns.lookup(). -
signal<AbortSignal> 可用于关闭套接字的中止信号。¥
signal<AbortSignal> An AbortSignal that may be used to close a socket.
-
-
callback<Function> 绑定作为'message'事件的监听器。可选的。¥
callback<Function> Attached as a listener for'message'events. Optional. -
¥Returns: <dgram.Socket>
创建 dgram.Socket 对象。一旦创建了套接字,则调用 socket.bind() 将指示套接字开始监听数据报消息。当 address 和 port 未传递给 socket.bind() 时,该方法会将套接字绑定到随机端口上的 "所有接口" 地址(它对 udp4 和 udp6 套接字都做正确的事情)。可以使用 socket.address().address 和 socket.address().port 检索绑定的地址和端口。
¥Creates a dgram.Socket object. Once the socket is created, calling
socket.bind() will instruct the socket to begin listening for datagram
messages. When address and port are not passed to socket.bind() the
method will bind the socket to the "all interfaces" address on a random port
(it does the right thing for both udp4 and udp6 sockets). The bound address
and port can be retrieved using socket.address().address and
socket.address().port.
如果启用了 signal 选项,则在对应的 AbortController 上调用 .abort() 与在套接字上调用 .close() 类似:
¥If the signal option is enabled, calling .abort() on the corresponding
AbortController is similar to calling .close() on the socket:
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();