TCP客户端代码:
const net = require(‘net’);
for(let i=0; i<100; i++){
let client = net.Socket();
client.connect(8430,‘localhost’);
client.write(你好,我是机器人${i}号
);
// client.on(“connect”,()=>{
// console.log(“已成功连接上服务器!”);
// })
}
TCP服务器代码:
const net = require(‘net’);
//1.创建一个TCP服务器对象
const server = net.createServer();
//2.服务器监听地址与端口
server.listen(8430,‘localhost’,1);
//3.服务器监听端口和地址时会触发listening事件
server.on(“listening”,()=>{
//3.1 server.listenting用于判断服务器是否正在监听端口
//3.2 获取服务器监听的地址和端口信息
let info = server.address();
if( server.listening ){
console.log(正在监听${info.address}:${info.port}
);
}
})
//4.当服务器监听端口和地址出错时,触发error事件
server.on(“error”,err=>{
console.log(服务器抛出一个错误:${err.code}
);
})
//5.服务器对象监听connection事件,当有客户端连接该服务器时触发该事件。
server.on(“connection”,(socket)=>{
socket.on(“data”,data=>{
console.log(data.toString());
})
//5.1取消客户端超时
// socket.setTimeout(0);
//6.设置服务器最大连接数,拒绝多余的连接
server.maxConnections = 10000;
console.log(服务器能接收的最大并发连接数:${server.maxConnections}
);
//7.获取当前并发连接数
server.getConnections(((err,count)=>{
console.log(当前并发连接数:${count}
);
}));
})
//8.停止服务器接收新的连接,保持已存在的连接,当所有连接关闭时,服务器将会关闭,将会触发close事件 setTimeout(() => { server.close(); }, 1000*60);
//9.当server.close方法调用时,会触发close事件 server.on(“close”,()=>{ console.log(“服务器已经停止接受新的连接!”); //10.服务器退出应用程序unref server.unref() //11.取消服务器停止退出应用程序ref let isOver = false; if(!isOver){ server.ref(); } });
最大文件打开数会影响链接数 搜索ulimit