var net = require('net');
console.log('Это IP-адрес ? ' + (net.isIP('1234') === 0 ? false : true));
console.log('Это IP-адрес в формате IPv4 ? ' + (net.isIP('1234') === 4));
console.log('Это IP-адрес в формате IPv6 ? ' + (net.isIP('1234') === 6));
console.log('Это IP-адрес IPv4 ? ' + net.isIPv4('127.0.0.1'));
console.log('Это IP-адрес IPv6 ? ' + net.isIPv6('2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d'));
net-server.js
var net = require('net');
var optionalOptions = {
allowHalfOpen: false,
pauseOnConnect: false
};
var server = new net.Server(optionalOptions); // синоним net.createServer();
server.on('connection', function (socket) {
console.log('Клиет подключился.');
console.log('Адрес сервера: ' + socket.localAddress + ':' + socket.localPort);
console.log('Адрес клиента: ' + socket.remoteAddress + ':' + socket.remotePort + ', family: ' + socket.remoteFamily);
server.getConnections(function (error, count) {console.log('Число подключенных к серверу клиентов: ' + count);});
var request;
var response;
request = response = socket;
request.setEncoding('utf8');
request.on('data', function (data) {console.log('Данные от клиента: ' + (Buffer.isBuffer(data) ? data.toString() : data));});
request.on('end', function () {console.log('Клиент передал серверу все данные.');});
// response.setNoDelay(); // Установить отправку данных сразу после каждого вызова метода write().
response.write('Привет клиенту от сервера.');
response.end('Пока клиенту от сервера.');
server.close(); // Закрыть сервер и завершить все соединения с клиентами.
});
server.on('close', function () {
console.log('Сервер закрылся. Все соединения с клиентами завершились.');
});
server.on('error', function (error) {
console.log('Произошла ошибка на сервере.');
if (error.code === 'EADDRINUSE') {
console.log('Адрес сервера "127.0.0.1:8080" всё ещё использует другой сервер. Попробуем создать наш сервер ещё раз через секунду');
setTimeout(function () {
server.close();
server.listen(8080, '127.0.0.1');
}, 1000);
} else {
server.close(); // Закрыть сервер и завершить все соединения с клиентами.
throw error;
}
});
server.on('listening', function () {
console.log('Сервер начал прослушивать подключения от клиентов после вызова метода server.listen().');
console.log('Адрес сервера: ' + server.address().address + ':' + server.address().port + ', family: ' + server.address().family);
});
server.listen(8080, '127.0.0.1');
if (server.listening) {
console.log('Сервер в данный момент прослушивает подключения от клиентов.');
} else {
console.log('Сервер в данный момент не прослушивает подключения от клиентов.');
}
/*
server.ref(); // Удерживать программу от завершения, если в ней остался работать только этот сервер.
server.unref(); // Убрать удержание программы от завершения, если в ней остался работать только этот сервер.
*/
net-client.js
var net = require('net');
var optionalOptions = {
allowHalfOpen: false,
pauseOnConnect: false,
readable: false,
writrable: false
};
var client = new net.Socket(optionalOptions); // синоним net.createConnection(optionalOptions);
client.setEncoding('utf8');
client.on('data', function (data) {console.log('Данные от сервера: ' + (Buffer.isBuffer(data) ? data.toString() : data));});
client.on('end', function () {console.log('Сервер передал клиенту все данные.');});
client.on('drain', function () {
console.log('Буфер записи пуст.');
});
client.setTimeout(1000);
client.on('timeout', function () {
console.log('Превышено время ожидания ответа от севера.');
});
client.on('close', function (hadError) {
console.log('Клиент закрыл свое соединение с сервером.');
if (hadError) {
console.log('Произошла ошибка во временя передачи данных.');
}
});
client.on('error', function (error) {
console.log('Произошла ошибка соедиения с сервером. Клиент сейчас автоматически выполнит метод client.close().');
});
client.on('ready', function () {
console.log('Был вызван метод client.connect(). Клиент готов к использованию.');
});
client.on('lookup', function (error, address, family, host) {
console.log('Поиск адреса подключения до создания соединения с сервером.');
console.log(address);
console.log(family);
console.log(host);
});
if (client.pending) {
console.log('Клиент ожидает вызова метод client.connect() и подключения к серверу.');
}
client.on('connect', function () {
console.log('Соединение с сервером установлено.');
});
// client.connect(8080, '127.0.0.1');
client.connect({
port: 8080, host: '127.0.0.1', // Адрес сервера
localPort: 9090, localAddress: '127.0.0.2', family: 4 // Локальный адрес клиента для передачи его серверу. IPv4.
});
if (client.connecting) {
console.log('В данный момент клиент устанавливает соединение с сервером.');
}
client.write('Привет серверу от клиента.');
client.end('Пока серверу от клиента.');
/*
client.destroy();
if (client.destroyed) {
console.log('Соединение с сервером уничтожено. Данные больше не могут быть отправлены.');
}
client.ref(); // Удерживать программу от завершения, если в ней остался работать только этот клиент.
client.unref(); // Убрать удержание программы от завершения, если в ней остался работать только этот клиент.
*/
Комментариев нет:
Отправить комментарий