BulatRuslanovich / TCP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Простой TCP Клиент и Сервер на C++

Этот проект представляет собой консольные TCP клиент и сервер, написанные на языке C++ с использованием Linux сокетов. Клиент и сервер разработаны в объектно-ориентированном стиле.

Описание

Клиент получает из командной строки 3 параметра:

  1. Текстовое имя клиента
  2. Номер порта сервера
  3. Период подключения к серверу в секундах

Клиент с указанным периодом подключается к серверу и отправляет текстовую строку в формате [yyyy-mm-dd hh:mm:ss.ms] "имя_клиента"

Сервер получает из командной строки 1 параметр:

  1. Номер порта

После запуска сервер слушает указанный порт, получает сообщения от клиентов и записывает их в файл log.txt. Каждое подключение клиента обрабатывается в отдельном потоке. Каждое сообщение записывается в отдельную строку. Сервер позволяет работать с несколькими клиентами одновременно и обеспечивает корректный доступ к файлу log.txt.

Пример использования

  1. Запуск сервера:
server 3000
  1. Запуск клиентов:
client Name1 3000 1
client Name2 3000 2
client Name3 3000 3

После запуска клиентов ожидается, что в файле log.txt будет содержаться примерно следующая информация (фактический вывод зависит от момента запуска клиентов):

[2018-09-19 13:50:01.000] Name1
[2018-09-19 13:50:02.000] Name1
[2018-09-19 13:50:02.010] Name2
[2018-09-19 13:50:03.000] Name1
[2018-09-19 13:50:03.010] Name3
[2018-09-19 13:50:04.000] Name1
[2018-09-19 13:50:04.010] Name2
[2018-09-19 13:50:05.000] Name1
[2018-09-19 13:50:06.000] Name1
[2018-09-19 13:50:06.010] Name2
[2018-09-19 13:50:06.020] Name3

About


Languages

Language:C++ 100.0%