node.js - NodeJS TCP Port crashes
问题描述
I am developing socket application in my server with node js. I am just listening 9000 port. I am checking the data that client sent to this tcp port, if a client made http request, I kick client from server. Because some bots in the internet does that and I dont want them in my system. Due to test purposes, I try to connect that port with a browser, hold down F5 refresh button continuously, then application crashes immediately. I am simulating the DDOS attacks in my port by this way. The error message as follows:
events.js:183
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at _errnoException (util.js:992:11)
at TCP.onread (net.js:618:25)
And here is my basic TCP listener code
var net = require("net");
var server = net.createServer();
server.on("error", err =>
{
console.log("error handled, error is : %s",err);
});
server.on("connection",function(socket)
{
var remoteAddress = socket.remoteAddress;
console.log("new client connection %s",remoteAddress);
socket.end();
});
server.listen(9000, function()
{
console.log("I am listening.");
});
What can be done to save TCP port from HTTP connections and internet bots?
解决方案
把它放在 socket.end() 下:
socket.on('error', function(error) {
console.log('Socket got problems: ', error.message);
});
完整代码:
var net = require("net");
var server = net.createServer();
server.on("error", err =>
{
console.log("error handled, error is : %s",err);
});
server.on("connection",function(socket)
{
var remoteAddress = socket.remoteAddress;
console.log("new client connection %s",remoteAddress);
socket.end();
socket.on('error', function(error) {
console.log('Socket got problems: ', error.message);
});
});
server.listen(9000, function()
{
console.log("I am listening.");
});
推荐阅读
- node.js - Microsoft Graph Webbook 验证令牌问题
- windows - 为什么即使 exe 有清单也应用 DotLocal 重定向
- scala - 优化 Scala 代码以读取不适合内存的大文件的有效方法
- mongodb - 如何在嵌入文档中找到某个元素
- php - 来自数据库表的结果
- python - 是否可以使用 tkinter 制作自定义输入格式?
- lua - 一个简单的 Flappy Bird 游戏中的帧速率正在加速 Corona SDK
- c# - 服务器和统一应用程序之间的通信
- php - 如何在单击 Html 按钮时执行存储过程?
- python - 在数据框中随机选择两个值而不重复