socket.bind([port][, address][, callback])
曆史
版本 | 變化 |
---|---|
v0.9.1 | 該方法已更改為異步執行模型。需要更改遺留代碼以將回調函數傳遞給方法調用。 |
v0.1.99 | 添加於:v0.1.99 |
參數
port
<integer>address
<string>callback
<Function> 沒有參數。綁定完成時調用。
對於 UDP 套接字,導致 dgram.Socket
偵聽命名 port
和可選的 address
上的數據報消息。如果 port
未指定或為 0
,則操作係統將嘗試綁定到隨機端口。如果未指定address
,操作係統將嘗試偵聽所有地址。綁定完成後,會發出 'listening'
事件並調用可選的 callback
函數。
指定 'listening'
事件偵聽器並將 callback
傳遞給 socket.bind()
方法沒有害處,但不是很有用。
綁定的數據報套接字保持 Node.js 進程運行以接收數據報消息。
如果綁定失敗,則會生成 'error'
事件。在極少數情況下(例如,嘗試與關閉的套接字綁定),可能會拋出
。Error
偵聽端口 41234 的 UDP 服務器示例:
import dgram from 'node:dgram'; const server = dgram.createSocket('udp4'); server.on('error', (err) => { console.log(`server error:\n${err.stack}`); server.close(); }); server.on('message', (msg, rinfo) => { console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`); }); server.on('listening', () => { const address = server.address(); console.log(`server listening ${address.address}:${address.port}`); }); server.bind(41234); // Prints: server listening 0.0.0.0:41234
const dgram = require('node:dgram'); const server = dgram.createSocket('udp4'); server.on('error', (err) => { console.log(`server error:\n${err.stack}`); server.close(); }); server.on('message', (msg, rinfo) => { console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`); }); server.on('listening', () => { const address = server.address(); console.log(`server listening ${address.address}:${address.port}`); }); server.bind(41234); // Prints: server listening 0.0.0.0:41234
相關用法
- Node.js dgram.Socket.bind(options[, callback])用法及代碼示例
- Node.js dgram.Socket.addMembership(multicastAddress[, multicastInterface])用法及代碼示例
- Node.js dgram.Socket.setMulticastInterface(multicastInterface)用法及代碼示例
- Node.js dgram.Socket.send(msg[, offset, length][, port][, address][, callback])用法及代碼示例
- Node.js dgram.createSocket()用法及代碼示例
- Node.js dgram.createSocket(options[, callback])用法及代碼示例
- Node.js diffieHellman.getGenerator()用法及代碼示例
- Node.js diffieHellman.setPrivateKey()用法及代碼示例
- Node.js dns.resolveNs()用法及代碼示例
- Node.js dnsPromises.lookup()用法及代碼示例
- Node.js dns.resolveCname()用法及代碼示例
- Node.js diagnostics_channel.hasSubscribers(name)用法及代碼示例
- Node.js dns.resolveSrv(hostname, callback)用法及代碼示例
- Node.js diagnostics_channel.channel(name)用法及代碼示例
- Node.js dnsPromises.resolveMx()用法及代碼示例
- Node.js dnsPromises.resolveTxt()用法及代碼示例
- Node.js dnsPromises.resolve()用法及代碼示例
- Node.js diffieHellman.getPrime()用法及代碼示例
- Node.js dnsPromises.resolveAny(hostname)用法及代碼示例
- Node.js dnsPromises.resolve6()用法及代碼示例
- Node.js dnsPromises.resolveSrv(hostname)用法及代碼示例
- Node.js dns.resolveSoa()用法及代碼示例
- Node.js dnsPromises.resolveSoa(hostname)用法及代碼示例
- Node.js dns.resolve()用法及代碼示例
- Node.js dns.resolveSoa(hostname, callback)用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 dgram.Socket.bind([port][, address][, callback])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。