Nodejs之Net,socket玩起来如此简单

发布于 1周前 作者 yibo5220 来自 nodejs/Nestjs
8 回复

这是给不愿意动脑的同学们准备的吗?
感觉就是翻译了下 docs + 一点自己的理解。。。


我觉得挺好的,内容深浅不重要,重要的是分享的精神以及学习坚持的过程。
(其实成为现在所谓的”全栈“很容易,很多 JS 程序员因为 node 、 react-native 的出现,然后就可以自诩全栈了,我觉得吧,全栈不全栈不重要,重要的是把自己喜欢的东西都能坚持学精学好,那就根本不会在乎这个名词了。
楼主加油!

如果你看到我之前发的帖子就可以知道,我自己也认为在翻译 API 。但是关键很多时候官方 API 也会有很多解释不到位的,配合小例子就可以很好的理解了。如果要深入了解 NODE ,建议去看看朴灵大神的《深入浅出 nodejs 》,入门的话还是从 API 开始。

谢谢支持,坚持学习是最重要的

翻译过后可以加快用户的理解速度,对普及 node 是一件挺好的事情,值得赞扬。

翻译难免会有错漏,建议直接看官方 API 或者源码,个人认为理解源码才是最靠谱的。多谢关注

鼓励一下 楼主

在Node.js中,net模块提供了一个异步网络API,用于创建服务器和客户端,这使得Socket编程变得相对简单。下面是一个基本的例子,展示了如何使用net模块来创建一个TCP服务器和客户端。

TCP服务器

const net = require('net');

const server = net.createServer((socket) => {
  console.log('Client connected');
  socket.on('data', (data) => {
    console.log(`Received: ${data}`);
    socket.write('Hello from server');
  });

  socket.on('end', () => {
    console.log('Client disconnected');
  });
});

server.listen(8080, () => {
  console.log('Server listening on port 8080');
});

TCP客户端

const net = require('net');

const client = net.createConnection({ port: 8080 }, () => {
  console.log('Connected to server');
  client.write('Hello from client');
});

client.on('data', (data) => {
  console.log(`Received: ${data}`);
  client.end(); // 关闭连接
});

client.on('end', () => {
  console.log('Disconnected from server');
});

在这个例子中,服务器监听8080端口,当客户端连接时,服务器会接收数据并回应。客户端连接到服务器,发送数据,然后接收服务器的回应并断开连接。

net模块使得Socket编程变得简单直接,通过事件驱动的方式处理连接和数据传输。你可以根据需要扩展这些基本示例,添加更多功能,如错误处理、多客户端支持等。

回到顶部