返回

网络二

前端

理解 Socket

Socket 是一种通信机制,允许两个计算机程序通过网络进行数据交换。它提供了一种端对端连接,使得两个进程能够可靠且高效地进行通信。Socket 本身没有协议限制,因此可以用于各种网络协议,包括 TCP 和 UDP。

TCP 服务器

TCP(传输控制协议)是一种面向连接的网络协议,它提供可靠且有序的数据传输。它通常用于创建服务器-客户端应用程序,其中服务器等待客户端连接并提供服务。

使用 Node.js 创建 TCP 服务器

使用 Node.js 创建 TCP 服务器非常简单。以下是一个示例代码:

const net = require('net');

const server = net.createServer();

server.on('connection', (socket) => {
  console.log('新客户端连接!');

  socket.on('data', (data) => {
    console.log(`收到客户端数据:${data.toString()}`);

    socket.write('你好,客户端!');
  });

  socket.on('close', () => {
    console.log('客户端已断开连接');
  });
});

server.listen(3000, () => {
  console.log('服务器正在监听端口 3000');
});

在上面的代码中:

  • 我们使用 net 模块创建了一个 TCP 服务器。
  • 当有客户端连接时,connection 事件会被触发。
  • 我们在 connection 事件中处理来自客户端的数据,并将数据打印到控制台。
  • 我们还在 connection 事件中为客户端写入响应。
  • 当客户端断开连接时,close 事件会被触发。
  • 最后,我们调用 listen() 方法让服务器在端口 3000 上监听。

运行服务器

要运行服务器,只需在终端中运行以下命令:

node tcp-server.js

客户端连接

要连接到服务器,您可以使用以下代码:

const net = require('net');

const client = net.createConnection({
  host: 'localhost',
  port: 3000
});

client.on('connect', () => {
  console.log('已连接到服务器');

  client.write('你好,服务器!');
});

client.on('data', (data) => {
  console.log(`收到服务器数据:${data.toString()}`);
});

client.on('close', () => {
  console.log('已断开与服务器的连接');
});

在上面的代码中:

  • 我们使用 net 模块创建了一个 TCP 客户端。
  • 当客户端连接到服务器时,connect 事件会被触发。
  • 我们在 connect 事件中向服务器发送数据。
  • 我们还在 connect 事件中处理来自服务器的数据。
  • 当客户端断开连接时,close 事件会被触发。

运行客户端

要运行客户端,只需在终端中运行以下命令:

node tcp-client.js

总结

通过本教程,您已经了解了 Socket 的概念,并通过 Node.js 创建了一个简单的 TCP 服务器。这只是网络编程的冰山一角,但它为您理解网络通信的基础奠定了坚实的基础。