100个左右TCP客户端去访问同一个TCP服务器,报错connect ECONNRESET 127.0.0.1:8430是什么原因呢
发布于 6 年前 作者 wzpxx 1989 次浏览 来自 问答

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(); } });

1 回复

最大文件打开数会影响链接数 搜索ulimit

回到顶部