Skip to content

maladetska/IPv4-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPv4-chat

Задача:

Необходимо реализовать программу «IPv4-чат», обменивающуюся текстовыми широковещательными (IPv4 UDP broadcast) сообщениями по сегменту локальной сети, с копиями запущенными на других машинах, физически подключенных к одному логическому сегменту сети.

Описание работы программы:

Входные параметры для программы передаются в качестве обязательных опций командной строки. Список параметров включает IPv4 адрес и номер порта, на котором программа будет ожидать получение сообщений от других своих копий, выполняющихся на других машинах одного сегмента сети. И сразу после запуска, пользователю предлагается ввести свой nickname. Программа состоит из двух потоков (POSIX Threads):

  • первый поток «слушает» socket (recvfrom) и после получения UDP-датаграммы выводит на экран IPv4 адрес отправителя, его nickname и полученное сообщение.
  • второй поток ожидает от пользователя ввода текстового сообщения, с ограничением в 1007 байт. После окончания ввода, вместе с введённым текстовым сообщением и nickname, формирует и отправляет UDP-датаграмму (sendto) на широковещательный (broadcast) IPv4 адрес 255.255.255.255 и порт (указанный в опциях командной строки).

Сборка проекта происходит в docker-контейнере. Для этого созданы два скрипта: run_first.sh и run_second.sh, которые через команду docker run в интерактивном режиме запускают контейнеры c заданными ip-адресами 172.18.0.11 и 172.18.0.22 в общей виртуальной подсети.

Для пользователя:

При запуске скриптов нужно передать два аргумента для дальнейшей работы docker:

  • порт (как требовалось в ТЗ)
  • имя сети (создастся сеть с подсетью (subnet) 172.18.0.0/16; но если такая сеть уже существует, то следует ввести имя уже существующей сети)

Имя пользователя должно быть длиной до 20 символов и без пробелов. Чтобы выйти из чата, пользователю необходимо ввести ключевое слово ‘/STOP_CHAT’.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published