Nodejs网络通讯模块net的使用

Nodejs网络通讯模块net的使用
Node.js 的 net 模块提供了用于创建服务器和客户端 TCP 或 IPC(内部进程通信)连接的工具。下面我将分别介绍如何使用 net 模块创建TCP服务器和客户端。

创建TCP服务器

首先,我们需要引入 net 模块,并创建一个服务器实例:

const net = require('net');

// 创建服务器
const server = net.createServer((socket) => {
    console.log('Client connected');
    
    // 接收数据
    socket.on('data', (data) => {
        console.log(`Received data: ${data}`);
        // 向客户端发送响应
        socket.write('Hello, client!');
    });

    // 客户端断开连接时触发
    socket.on('end', () => {
        console.log('Client disconnected');
    });
});

// 监听端口
server.listen(3000, () => {
    console.log('Server is listening on port 3000');
});

上述代码中:

  • net.createServer() 创建了一个新的 TCP 服务器。
  • socket.on('data', ...) 监听从客户端接收到的数据。
  • socket.write(...) 用于向客户端发送数据。
  • server.listen(...) 开始监听指定的端口。

创建TCP客户端

接下来,我们创建一个TCP客户端来连接到上述服务器:

const net = require('net');

// 创建客户端
const client = new net.Socket();

client.connect(3000, '127.0.0.1', () => {
    console.log('Connected to server');
    // 发送数据到服务器
    client.write('Hello, server!');
});

// 接收来自服务器的数据
client.on('data', (data) => {
    console.log(`Received from server: ${data}`);
    // 关闭连接
    client.destroy();
});

// 当连接断开时触发
client.on('close', () => {
    console.log('Connection closed');
});

// 错误处理
client.on('error', (err) => {
    console.error(`Error: ${err.message}`);
});

在这个客户端示例中:

  • client.connect(...) 方法用于连接到服务器。
  • client.write(...) 用于向服务器发送数据。
  • client.on('data', ...) 监听来自服务器的数据。
  • client.destroy() 用于关闭连接。
  • client.on('close', ...) 在连接关闭时触发。
  • client.on('error', ...) 处理可能发生的错误。

以上就是使用 Node.js 的 net 模块创建TCP服务器和客户端的基本方法。您可以根据实际需求调整这些示例代码。


3 回复

当然,Node.js中的net模块是个强大的工具,用于创建基于流的服务器和客户端。想象一下,你正在构建一个魔法传送门系统,net.createServer()就是你的传送门建造指南,而net.connect()则是你如何激活传送门的说明书。

首先,让我们来搭建一个传送门(服务器):

const net = require('net');

const server = net.createServer((socket) => {
  socket.write('欢迎来到魔法世界!\n');
  socket.end('再见,冒险者!\n');
});

server.listen(1337, () => {
  console.log('传送门已开启,等待冒险者...');
});

然后,我们需要一个勇敢的冒险者(客户端)来连接这个传送门:

const net = require('net');

const client = net.connect({ port: 1337 }, () => {
  console.log('成功连接到魔法世界!');
  client.write('我是新来的冒险者!');
});

client.on('data', (data) => {
  console.log(data.toString());
  client.end();
});

client.on('end', () => {
  console.log('已离开魔法世界。');
});

这样,你就有了一个基础的双向通信通道,就像两个魔法世界之间的秘密信使。希望这能激发你在Node.js中探索更多关于net模块的乐趣!


Node.js 的 net 模块提供了用于创建服务器和客户端的 TCP 通信的能力。下面我会展示如何使用 net 模块来创建一个简单的TCP服务器和客户端。

创建TCP服务器

首先,我们创建一个TCP服务器:

const net = require('net');

// 创建服务器
const server = net.createServer((socket) => {
    console.log('Client connected.');

    // 监听数据接收事件
    socket.on('data', (data) => {
        console.log(`Received data: ${data.toString()}`);
        // 向客户端发送响应
        socket.write(`Echo: ${data.toString()}`);
    });

    // 监听断开连接事件
    socket.on('end', () => {
        console.log('Client disconnected.');
    });
});

// 监听端口
server.listen(3000, () => {
    console.log('Server is listening on port 3000');
});

创建TCP客户端

接下来,我们创建一个TCP客户端,它将向上述服务器发送数据并接收响应:

const net = require('net');

// 创建客户端
const client = new net.Socket();

client.connect(3000, '127.0.0.1', () => {
    console.log('Connected to server.');
    // 发送数据给服务器
    client.write('Hello Server!');
});

// 接收来自服务器的数据
client.on('data', (data) => {
    console.log(`Received from server: ${data.toString()}`);
    // 关闭连接
    client.destroy();
});

// 处理连接关闭
client.on('close', () => {
    console.log('Connection closed');
});

运行

  1. 首先运行服务器脚本。
  2. 然后运行客户端脚本。

客户端会连接到服务器,发送一条消息,服务器将该消息回显,并且客户端接收到回显的消息后断开连接。

这就是如何使用 Node.js 的 net 模块创建简单的TCP通信。这种技术常用于实时应用、聊天应用或任何需要实时双向数据流的应用中。

Node.js中的net模块用于创建服务器和客户端网络通信。以下是一个简单的示例:

服务器端:

const net = require('net');
const server = net.createServer((socket) => {
    socket.write('欢迎连接到服务器\n');
    socket.end('这是你的消息。\n');
});
server.listen(8080, () => console.log('服务器运行在 8080 端口'));

客户端:

const net = require('net');
const client = new net.Socket();
client.connect(8080, 'localhost', () => {
    client.write('你好,服务器!');
});
client.on('data', (data) => {
    console.log(data.toString());
    client.destroy(); // 关闭连接
});

这个例子展示了如何使用net模块创建一个简单的TCP服务器和客户端。

回到顶部