Сбой TCP-порта NodeJS - PullRequest
       38

Сбой TCP-порта NodeJS

0 голосов
/ 09 декабря 2018

Я разрабатываю приложение сокета на моем сервере с узлом js.Я просто слушаю 9000 порт.Я проверяю данные, которые клиент отправил на этот порт TCP, если клиент сделал http-запрос, я выгнаю клиента с сервера.Потому что некоторые боты в Интернете делают это, и я не хочу, чтобы они были в моей системе.В целях тестирования я пытаюсь соединить этот порт с браузером, постоянно удерживать кнопку обновления F5, после чего приложение сразу падает.Таким образом я имитирую DDOS-атаки в моем порту.Сообщение об ошибке выглядит следующим образом:

events.js:183
  throw er; // Unhandled 'error' event
  ^

Error: read ECONNRESET
at _errnoException (util.js:992:11)
at TCP.onread (net.js:618:25)

А вот мой основной код прослушивателя TCP

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.");
});

Что можно сделать, чтобы сохранить порт TCP от подключений HTTP и интернет-ботов?

1 Ответ

0 голосов
/ 09 декабря 2018

Поместите это в 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.");
});
...