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:41234const 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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
