在Node.js中,常用的socket通信工具有WebSocket、socket-io。本文通过程序自带的代码模块来实现。
Net模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/客户端的方法。所以可以通过该模块实现一个简易的cs应用。
服务端;
首先创建了一个 TCP 服务器,并使用 createServer 方法来创建服务器实例。
然后,通过监听事件(如 'data'、'end')来处理客户端的连接、数据发送和断开连接等操作。
var net = require('net');
// 创建一个服务端
var server = net.createServer(function (connection) {
// 客户端连接成功时触发
console.log('Client connected.');
// 监听客户端发送的数据
connection.on('data', data => {
console.log('Received data:', data.toString());
// 向客户端发送数据
connection.write('Hello from server!\r\n');
});
connection.on('end', function () {
console.log('client close connection');
});
connection.on('error', function (err) {
console.log({ err });
});
});
// 监听端口
server.listen(3333, function () {
console.log('server is listening');
});
客户端:
对于 TCP 客户端,使用 connect 方法创建客户端实例,并通过监听事件来处理与服务器的连接以及数据的发送和接收。
var net = require('net');
var client = net.connect({ port: 3333 }, function () {
console.log('connect server successfully.');
// 向服务器发送数据
client.write('Hello from client!\r\n');
});
// 监听服务器发送的数据
client.on('data', data => {
console.log('Received data:', data.toString());
});
// 服务器断开连接时触发
client.on('end', function () {
console.log('server close.');
});
执行结果: