方式一
JavaScript
/**
* 无法server.getConnections()统计
*/
const PORT = 3000
const HOST = "localhost"
/* 引入net模块 */
var net = require("net");
/* 创建TCP服务器 */
var server = net.createServer(function (socket) {
// console.log('someone connects');
console.log('DCS World已连接');
/* 获取地址信息,得到的是一个json { address: '::', family: 'IPv6', port: 8000 } */
// var address = server.address();
// var message = "the server address is" + JSON.stringify(address);
/* TCP服务器监听的端口号 */
// console.log("the port of server is" + address.port);
/* TCP服务器监听的地址 */
// console.log("the address of server is" + address.address);
/* 说明TCP服务器监听的地址是 IPv6 还是 IPv4 */
// console.log("the family of server is" + address.family);
/* 发送数据 */
// socket.write(message, function () {
// var writeSize = connection.bytesWritten;
// console.log(message + "has send");
// console.log("the size of message is" + writeSize);
// })
/* 监听data事件 */
socket.on('data', function (data) {
// console.log(data.toString());
// var readSize = connection.bytesRead;
// console.log("the size of data is" + readSize);
})
/**
* 方式一、
* socket.on('close', function (){}) 关闭当前连接
*/
socket.on('close', function () {
console.log('DCS World已关闭连接');
});
/**
* 方式二、
* server.close()永久关闭
*/
// server.close(function (error) {
// if (error) {
// console.log('close回调:服务端异常:' + error.message);
// } else {
// console.log('close回调:服务端正常关闭');
// }
// });
})
server.on('error', (e) => {
if (e.code === 'EADDRINUSE') {
console.log('地址正被使用,重试中...');
setTimeout(() => {
server.close();
server.listen(PORT, HOST);
}, 1000);
}
});
/* 获取监听端口 */
server.listen(PORT, function () {
console.log(`服务已创建并监听${PORT}端口,等待DCS World连接`);
console.log(`Creat server on http://${HOST}:${PORT}`);
})
方式二
JavaScript
/**
* 正确统计连接服务器的客户端数量
*/
const PORT = 3000
const HOST = "localhost"
/* 引入net模块 */
var net = require("net");
/* 创建TCP服务器 */
var server = net.createServer(function (socket) {
console.log('someone connects');
/* 获取地址信息,得到的是一个json { address: '::', family: 'IPv6', port: 8000 } */
// var address = server.address();
// var message = "the server address is" + JSON.stringify(address);
/* TCP服务器监听的端口号 */
// console.log("the port of server is" + address.port);
/* TCP服务器监听的地址 */
// console.log("the address of server is" + address.address);
/* 说明TCP服务器监听的地址是 IPv6 还是 IPv4 */
// console.log("the family of server is" + address.family);
/* 发送数据 */
// socket.write(message, function () {
// var writeSize = connection.bytesWritten;
// console.log(message + "has send");
// console.log("the size of message is" + writeSize);
// })
/* 设置最大连接数量 */
const maxConnections = 3;
/* 设置最大连接数量 */
server.maxConnections = maxConnections;
server.getConnections(function (err, count) {
if (count >= maxConnections) {
// console.log(err);
console.log("已到最大连接数");
} else {
console.log("the count of client is " + count);
}
});
})
server.on('error', (e) => {
if (e.code === 'EADDRINUSE') {
console.log('地址正被使用,重试中...');
setTimeout(() => {
server.close();
server.listen(PORT, HOST);
}, 1000);
}
});
/* 获取监听端口 */
server.listen(PORT, function () {
console.log(`服务已创建并监听${PORT}端口,等待DCS World连接`);
console.log(`Creat server on http://${HOST}:${PORT}`);
})