Giter VIP home page Giter VIP logo

cpp-lab-4's Introduction

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 имя_ветки).

cpp-lab-4's People

Contributors

ashtanyuk avatar yakovdeleon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.