system-programming

Что это за проект?

Простой проект с клиентом и сервером, которые общаются по TCP/IP протоколу и решают задачу поиска максимального потока в графе. Клиент задает серверу матрицу, сервер отдает клиенту максимальную пропускную способность входящего графа.

Задание: Разработать клиент-северное приложение для решения задачи определения максимальной пропускной способности транспортного графа.

Обязательная часть курсовой работы:

  • Разработка клиент-северного приложения, где клиент будет передавать исходную информацию для обработки на сервер и получать готовые данные с сервера. Все вычисления будут проходить на северной части
  • Сервер должен поддерживать возможность одновременной работы с несколькими клиентами.
  • Создание или управление новыми потоками и процессами на сервере необходимо организовывать с помощью системных вызовов.

Как это запустить?

  • Вариант 1 - с использованием исходников

    • Установите VisualStudio 2022 и набор инструментов для разработки консольных приложений на C++
    • В новую папку выкачайте себе код проекта: git clone *place_our_repo's_HTTPS_link_here*
    • Выкачав проект, соберите оба проекта (client и server).
  • Вариант 2 - из вкладки Releases

    • Скачайте архив, найдите server.exe и client.exe

Как это использовать?

  • Откройте проект сервера.
  • Перейдите в CMD, в папку, где у вас собрался client.exe
  • В CMD пропишите:
client.exe --points-count=*YOUR_AMOUNT_OF_POINTS* --start-point=*YOUR_START_POINT* --end-point=*YOUR_END_POINT* --array=*YOUR_MATRIX*

Пример:

client.exe --points-count=8 --start-point=0 --end-point=7 --array=[[0,11,4,0,8,0,0,0],[0,0,6,5,9,0,0,0],[0,0,0,0,0,6,0,0],[0,0,0,0,0,4,5,0],[0,0,0,0,0,0,0,8],[0,0,0,0,0,0,0,4],[0,0,0,0,0,0,0,3],[0,0,0,0,0,0,0,0]]

Для этого примера результат будет: 15.

ВАЖНО

Формат введения исходной матрицы должен совпадать с примером (по отсутствию пробелов, каждая строчка массива в квадратных скобках, весь массив в квадратных скобках).

Программа может принимать на вход различные графы. Результат вычислений прийдет обратно клиенту в консоль.

Полезные ссылки:

Веб-тул для визуализации графов и получения их матричных представлений

Алгоритм Форда-Фалкерсона для поиска максимального потока

О Проекте

Если вы нашли ошибку, или хотите внести изменения в проект - смело открывайте PR, мы с радостью изучим ваши предложения.