Публикации - Создание http- и tcp-серверов в Node.js

TCP-сервер

Протокол TCP (Transmission Control Protocol – протокол управления передачей) является базовым для многих интернет-приложений. По сути, протокол HTTP является частным случаем протокола TCP.

Для создания TCP-сервера и TCP-клиента, имеется встроенный модуль Net.

Мы можем создать сервер, передавая функцию обратного вызова с единственным аргументом функции – экземпляром сокета, прослушивающего два события: получение данных и закрытие соединения клиентом. Создадим в отдельном файле (например, server.js) сервер с помощью следующего листинга.

var net = require('net');

var server = net.createServer(function(conn){

  console.log('connected');

  conn.on('data', function(data){

      console.log( data+ ' от ' + conn.remoteAddress + ' ' + conn.remotePort);

      conn.write(data + ' - никому.');

  });

  conn.on('close', function(){

      console.log('client closed connection');

  })
}).listen(8125);

Посредством метода on назначаются два прослушивателя событий. Первым параметром метод принимает имя события, вторым – функцию прослушиватель.

Создание TCP-клиента. Для этого создадим отдельный файл (например, client.js), и в нем напишем следующее:

var net = require('net');

var client = new net.Socket();

client.setEncoding('utf8');

client.connect(8125, 'localhost', function(){

  console.log('connected to Server');

  client.write('Кому нужен браузер?');

});

process.stdin.resume(); // подготовка к вводу данных с консоли

process.stdin.on('data', function(data){

    client.write(data);

});

client.on('data', function(data){

    console.log(data);

});

client.on('close', function(){

    console.log('connection is closed');
})

Итак, у нас готовы два файла, один из которых является клиентом, второй – сервером.

Клиентское приложение отправляет только что набранную строку, которую сервер выводит в консоль и отвечает клиенту, дублируя эту строку и добавляя свою.

Чтобы протестировать эти node-приложения, запустим две консоли. Первым запустим приложение сервера.

Запускаем TCP-сервер:

node server.js

Откроем новую консоль, и запустим клиента:

node client.js

Соединение между клиентом и сервером поддерживается до тех пор, пока не будет прервано с одной из сторон. В режиме REPL – это комбинация клавиш Ctrl+C. Сведения об этом выводятся на консоль.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться