返回
网络二
前端
2023-10-28 01:53:11
理解 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 服务器。这只是网络编程的冰山一角,但它为您理解网络通信的基础奠定了坚实的基础。