-
TCP сервер — калькулятор
Принимает на вход числовые арифметические выражения и возвращает результат вычисления.- Выражения разделяются пробелами.
- Внутри выражения нет пробелов.
- Сервер конфигурируется только портом прослушивающего сокета.
-
TCP клиент — верификатор
Выполняет функцию проверки корректности работы сервера.- Генерирует строку арифметического выражения из
nчисел. - Делит её на случайное количество фрагментов.
- Последовательно отправляет эти фрагменты в сокет.
- Получает ответ от сервера и сравнивает его с корректным результатом.
- В случае ошибки выводит в
std::cerr:- исходное выражение,
- ответ сервера,
- правильный ответ.
Клиент конфигурируется следующими параметрами (через аргументы командной строки):
n— количество чисел в выражении;connections— количество TCP-сессий к серверу;server_addr— IP-адрес TCP-сервера;server_port— порт TCP-сервера.
- Генерирует строку арифметического выражения из
- epoll используется в обоих приложениях для масштабируемой работы с сокетами.
.
├── client
│ ├── main.cpp
│ ├── TcpClient.cpp
│ └── TcpClient.h
├── Makefile
└── server
├── main.cpp
├── TcpServer.cpp
└── TcpServer.hДля сборки проекта необходимо выполнить команду:
makeВ одном терминале запустите сервер:
./server/server 8080В другом терминале запустите клиент:
./client/client 5 10 127.0.0.1 8080