port
{integer}address
{string}callback
{Function} 没有参数。当绑定完成时会被调用。
对于 UDP socket,该方法会令 dgram.Socket
在指定的 port
和可选的 address
上监听数据包信息。
若 port
未指定或为 0
,操作系统会尝试绑定一个随机的端口。
若 address
未指定,操作系统会尝试在所有地址上监听。
绑定完成时会触发一个 'listening'
事件,并会调用 callback
方法。
同时监听 'listening'
事件和在 socket.bind()
方法中传入 callback
参数并不会带来坏处,但也不是很有用。
一个被绑定的数据包 socket 会令 Node.js 进程保持运行以接收数据包信息。
若绑定失败,一个 'error'
事件会被触发。
在极少数的情况下(例如尝试绑定一个已关闭的 socket),一个 [Error
] 会被抛出。
一个监听 41234 端口的 UDP 服务器的例子:
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('error', (err) => {
console.log(`服务器异常:\n${err.stack}`);
server.close();
});
server.on('message', (msg, rinfo) => {
console.log(`服务器收到:${msg} 来自 ${rinfo.address}:${rinfo.port}`);
});
server.on('listening', () => {
const address = server.address();
console.log(`服务器监听 ${address.address}:${address.port}`);
});
server.bind(41234);
// 打印:服务器监听 0.0.0.0:41234