netClinet.js
const net = require("net");
// net.socket
const socket = net.connect({ port: 8090, host: "127.0.0.1" }, function () {
console.log("连接服务器成功");
})
// 监听 error 事件
socket.on("error", function (e) {
console.log("连接服务器发生错误!", e);
})
// 监听 close 事件
socket.on("close", function (e) {
console.log("客户端关闭连接", e);
});
// 监听 end 事件
socket.setEncoding("utf-8");
socket.on("end", function () {
console.log("监听end事件触发");
});
// 监听 connect 事件
socket.on("connect", function () {
console.log("连接成功触发 connect事件");
socket.write("hello world!", "utf-8")
});
// 监听有数据发生时
socket.on("data", function (data) {
socket.setEncoding("utf-8")
console.log("接收服务器数据", data);
})
socket.on("close", function () {
console.log("触发 客户端 close 事件");
});
// 关闭连接
setTimeout(function () {
socket.unref();
}, 5000)
netServer.js
// 引入net模块
const net = require("net")
// 创建 server 服务器
const server = net.createServer(function () {
console.log("client coming");
})
// 创建监听socket
server.listen({
port: '8090',
host: '127.0.0.1',
exclusive: true
})
// 停止监听 server
// server.unref();
// 监听服务器数据 connection
server.on("connection", function (client_socket) {
console.log("监听到客户端的连接请求:");
//- 设置编码格式
client_socket.setEncoding("utf-8");
//- 监听客户端关闭事件
client_socket.on("close", function () {
console.log("监听到客户端关闭");
})
//- 监听客户端 data 事件
client_socket.on("data", function (data) {
console.log("监听到客户端data数据:", data);
client_socket.write("再见", "utf-8");
});
//- 监听客户端 error 事件
client_socket.on("error", function (error) {
console.log("监听到客户端error 事件", error);
});
});
// close 事件
server.on("close", function () {
console.log("服务器关闭,close事件触发");
})
// 需要调用close方法 触发
setTimeout(function () {
// console.log("停止对端口进行监听");
// server.unref()
// server.close();
}, 5000)