NIIT-2017 / Cpp-lab-4

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

Алгоритм выполнения работы

Для выполнения работы необходимо:

  1. Выполнить fork репозитария в свой аккаунт.
  2. Выполнить клонирование репозитария из своего аккаунта к себе на локальную машину (git clone).
  3. Создать ветку git с индивидуальным номером (git branch имя_ветки).
  4. Сделать ветку активной (git checkout имя).
  5. Необходимо разместить как исходные файлы с решениями задач, поместив cpp файлы в src, а заголовочные - в include.
  6. Добавить файлы в хранилище (git add).
  7. Выполнить фиксацию изменений (git commit -m "комментарий").
  8. Отправить содержимое ветки в свой удаленный репозитарий (git push origin имя_ветки).

About