如何绑定一个TCP套接字而不侦听nodejs?

我想在应用程序期间预留一个端口,但应用程序不应该一直在端口上进行监听。 因此,我想从listen()调用中分离bind() listen()调用。

nodejs中的UDP / Datagram套接字具有bindfunction。 但是我在“普通”(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);