• options {Object}
      • allowHalfOpen {boolean} 表明是否允许半开的 TCP 连接。默认值: false
      • pauseOnConnect {boolean} 表明是否应在传入连接上暂停套接字。默认值: false
    • connectionListener {Function} 自动设置为 ['connection'] 事件的监听器。
    • 返回: {net.Server}

    创建一个新的 TCP 或 [IPC] 服务器。

    如果 allowHalfOpen 被设置为 true,则当套接字的另一端发送 FIN 数据包时,服务器将仅在 [socket.end()] 被显式调用发回 FIN 数据包,直到此时连接为半封闭状态(不可读但仍然可写)。 有关详细信息,参见 ['end'] 事件和 [RFC 1122][half-closed](第 4.2.2.13 节)。

    如果 pauseOnConnect 被设置为 true,则与每个传入连接关联的套接字会被暂停,并且不会从其句柄读取任何数据。 这允许在进程之间传递连接,而原始进程不会读取任何数据。 要从暂停的套接字开始读取数据,则调用 [socket.resume()]。

    服务器可以是一个 TCP 服务器或 [IPC] 服务器,这取决于 [listen()][server.listen()] 监听什么。

    以下是一个 TCP 回声服务器的示例,在 8124 端口上监听连接:

    1. const net = require('net');
    2. const server = net.createServer((c) => {
    3. // 'connection' 监听器。
    4. console.log('客户端已连接');
    5. c.on('end', () => {
    6. console.log('客户端已断开连接');
    7. });
    8. c.write('你好\r\n');
    9. c.pipe(c);
    10. });
    11. server.on('error', (err) => {
    12. throw err;
    13. });
    14. server.listen(8124, () => {
    15. console.log('服务器已启动');
    16. });

    使用 telnet 测试:

    1. $ telnet localhost 8124

    要想在 /tmp/echo.sock 上监听:

    1. server.listen('/tmp/echo.sock', () => {
    2. console.log('服务器已启动');
    3. });

    使用 nc 连接到 Unix 域套接字服务器:

    1. $ nc -U /tmp/echo.sock