Cpp-lab-4
Задачи для практикума №4 (сети и потоки)
Формулировка задачи
Разработать многопоточный TCP-сервер и клиентское приложение для пересылки афоризмов ("Fortune").
Требования к задаче в целом
- можно использовать любую библиотеку сокетов (unix,QT,winsockets)
- и сервер и клиент должны быть консольными приложениями
- порт для работы клиента и сервера нужно указывать в файле настроек
- сборка проекта должна осуществляться системой CMAKE
- для сжатия сообщений нужно использовать библиотеку ZLIB
- для шифрования сообщений можно использовать любую библиотеку
Требования к серверу
- сервер должен считывать афоризмы из заранее подготовленного файла
- сервер должен использовать TCP-сокеры для обмена информацией с клиентом
- сервер должен поддерживать несколько соединений одновременно
- сервер должен управляться настройками в текстовом файле конфигурации
- сервер должен уметь передавать сообщение в сжатом виде (если опция включена)
- сервер должен уметь передавать сообщение в зашифрованном виде (если опция включена)
- сервер должен идентифицировать клиентов по специальному имени (передаваемому на сервер клиентом)
- сервер должен вести журнал соединений с клиентами, сохраняя идентификатор клиента и переданное ему сообщение (и в каком виде)
Требование к клиенту
- клиент должен запускаться из командной строки с указанием IP-адреса сервера и номера порта
- клиент должен распаковывать/дешифровывать сообщения сервера
- клиент должен выводить полученные сообщения (афоризмы) на экран
Список участников/веток
ФИО | Имя ветки |
---|---|
Алексеева В. | b1 |
Белов А. | b2 |
Булатова М. | b3 |
Зобов М. | b4 |
Зубова М. | b5 |
Исхаков М. | b6 |
Косолапов В. | b7 |
Котрикова К. | b8 |
Коченко А. | b9 |
Макаров Д. | b10 |
Михайлова И. | b11 |
Орлова Т. | b12 |
Парьев Д. | b13 |
Першина А. | b14 |
Решетников Н. | b15 |
Семенов А. | b16 |
Серов Д. | b17 |
Смирнова М. | b18 |
Сорокин А. | b19 |
Тимофеев С. | b20 |
Тюлькин А. | b21 |
Федяков М. | b22 |
Яковлев Д. | b23 |
Алгоритм выполнения работы
Для выполнения работы необходимо:
- Выполнить fork репозитария в свой аккаунт.
- Выполнить клонирование репозитария из своего аккаунта к себе на локальную машину (
git clone
). - Создать ветку git с индивидуальным номером (
git branch имя_ветки
). - Сделать ветку активной (
git checkout имя
). - Необходимо разместить как исходные файлы с решениями задач, поместив cpp файлы в src, а заголовочные - в include.
- Добавить файлы в хранилище (
git add
). - Выполнить фиксацию изменений (
git commit -m "комментарий"
). - Отправить содержимое ветки в свой удаленный репозитарий (
git push origin имя_ветки
).