ISPPO_HW_4
Транспортные протоколы и форматы данных
Проект демонстрирует работу клиент-серверных взаимодействий на Python с использованием протоколов TCP/UDP и форматов сериализации JSON/MessagePack.
📋 Список внешних библиотек
Для работы проекта требуется одна внешняя библиотека для бинарной сериализации:
- msgpack — эффективный бинарный формат сериализации.
Остальные используемые модули (, , , ) входят в стандартную библиотеку Python.
Установка зависимостей
🚀 Инструкции по запуску
Проект состоит из 4 скриптов, разделенных на два задания. Запускать их нужно в разных терминалах.
Задание 1: TCP + JSON (Надежная передача)
Моделирует запрос-ответ между клиентом и сервером.
-
Запуск сервера:
Сервер начнет слушать порт
.15000 -
Запуск клиента: Откройте новый терминал и выполните:
Клиент подключится, отправит запрос
и выведет полученные курсы валют.get_rates
Задание 2: UDP + MessagePack (Широковещательная рассылка)
Моделирует потоковую передачу данных без установки соединения.
-
Запуск сервера (вещателя):
Сервер будет отправлять пакеты каждые 3 секунды на порт
.15001 -
Запуск клиента (приемника): Откройте новый терминал и выполните:
Клиент начнет принимать и распаковывать бинарные пакеты, выводя номер последовательности и курс.
📁 Структура файлов
| Файл | Описание |
|---|---|
| Сервер, принимающий подключения и отдающий JSON. |
| Клиент, запрашивающий данные через TCP. |
| Сервер, рассылающий бинарные пакеты (MessagePack) через UDP Broadcast. |
| Клиент, слушающий эфир и обрабатывающий потерю пакетов. |