Skip to content

"Курс молодого бойца" отдела компиляторных технологий ИСП РАН

Notifications You must be signed in to change notification settings

Vladimir1t/Client-server_application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Клиент-серверное приложение

Программа, реализующующая простое клиент-серверное приложение: клиент устанавливает связь с сервером, расположенным по заранее определённому адресу, на что сервер посылает ему сообщение, в котором сообщает адрес клиента.


В режиме сервера (флаг -s) программа:

  • слушает введённый адрес в бесконечном цикле;
  • при получении запроса отправляет ответ, содержащий IP-адрес и порт клиента. В режиме клиента программа:
  • посылает запрос серверу по указанному адресу;
  • ждёт ответ сервера;
  • выводит полученный ответ в формате <адрес>:<порт>;
  • завершает свою работу.

В зависимости от флагов запуска связь устанавливается через сокеты по протоколу TCP или UDP. Протоколу TCP соответствует флаг -t, UDP - -u. Программа не может использовать одновременно два протокола, поэтому одновременное использование флагов -t и -u недопустимо, программа должна проверять корректность переданных параметров при разборе введенной команды. По умолчанию используется TCP (в случае если не указан ни один параметр)

В программу добавлена поддержка логирования (модуль logging) по следующим каналам:

  • стандартный вывод (stdout) по флагу ‘-o’ или по умолчанию;
  • файл <файл> по флагу -f <файл>

Программа логирует следующие события:

  • Открытие (привязка) сокета;
  • Отправка сообщения;
  • Получение сообщения;
  • Закрытие сокета

Пример:

  python3 kmb.py 127.0.0.1 13000 -s -t -f log_output

  • Запуск программы в режиме сервера по протоколу TCP с записью логов в файл log_output;
  • Программа открывает сокет по адресу 127.0.0.1:13000

Трассы Wireshark.

С помощью Wireshark сделаны сетевые трассы взаимодействия клиента и сервера программы. Отфильтрованы примеры одного сеанса взаимодействия для каждого из транспортных протоколов (TCP, UDP) и сохранены в отдельные файлы. TCP-соединения присутствовуют целиком, включая SYN и FIN пакеты.

  • файл tcp.pcap, содержащий трассу взаимодействия по протоколу TCP;
  • файл udp.pcap, содержащий трассу взаимодействия по протоколу UDP

About

"Курс молодого бойца" отдела компиляторных технологий ИСП РАН

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages