如何绑定一个TCP套接字而不侦听nodejs?
我想在应用程序期间预留一个端口,但应用程序不应该一直在端口上进行监听。 因此,我想从listen()
调用中分离bind()
listen()
调用。
nodejs中的UDP / Datagram套接字具有bind
function。 但是我在“普通”(TCP)套接字API中找不到它的等价物。
是否可以绑定而不听?
您可以创build未包装的TCP套接字:
const net = require('net'); const TCP = process.binding('tcp_wrap').TCP; const socket = new TCP(); // Bind is done here. socket.bind('0.0.0.0', 3333); console.log('bound'); // Then, at some later stage, if you want to listen, // you can use the previously created (and bound) socket. setTimeout(() => { console.log('listening'); const server = net.createServer((conn) => { console.log('got connection'); conn.end('bye\n'); }).listen(socket); }, 5000);