Практическое задание:
Задание 1:
Реализовать клиентскую и серверную часть приложения. Клиент отправляет серверу сообщение «Hello, server», и оно должно отобразиться на стороне сервера. В ответ сервер отправляет клиенту сообщение «Hello, client», которое должно отобразиться у клиента.
Требования:
- Обязательно использовать библиотеку
socket
. - Реализовать с помощью протокола UDP.
Полезные ссылки:
- Habr: Основы работы с сокетами
- Андрей Малинин: Сокеты в Python
- Документация Python: Руководство по сокетам
- Python Library Reference: socket
- Видео: Введение в работу с сокетами
Задание 2:
Реализовать клиентскую и серверную часть приложения. Клиент запрашивает выполнение математической операции, параметры которой вводятся с клавиатуры. Сервер обрабатывает данные и возвращает результат клиенту.
Варианты операций:
- Теорема Пифагора.
- Решение квадратного уравнения.
- Поиск площади трапеции.
- Поиск площади параллелограмма.
Порядок выбора варианта: Выбирается по порядковому номеру в журнале (пятый студент получает вариант 1 и т.д.).
Требования:
- Обязательно использовать библиотеку
socket
. - Реализовать с помощью протокола TCP.
Задание 3:
Реализовать серверную часть приложения. Клиент подключается к серверу, и в ответ получает HTTP-сообщение, содержащее HTML-страницу, которая сервер подгружает из файла index.html
.
Полезные ссылки:
Требования:
- Обязательно использовать библиотеку
socket
.
Задание 4:
Реализовать двухпользовательский или многопользовательский чат. Для максимального количества баллов реализуйте многопользовательский чат.
Требования:
- Обязательно использовать библиотеку
socket
. - Для многопользовательского чата необходимо использовать библиотеку
threading
.
Реализация:
- Протокол TCP: 100% баллов.
- Протокол UDP: 80% баллов.
- Для UDP используйте
threading
для получения сообщений на клиенте. - Для TCP запустите клиентские подключения и обработку сообщений от всех пользователей в потоках. Не забудьте сохранять пользователей, чтобы отправлять им сообщения.
Полезные ссылки:
Задание 5:
Написать простой веб-сервер для обработки GET и POST HTTP-запросов с помощью библиотеки socket
в Python.
Задание:
- Сервер должен:
- Принять и записать информацию о дисциплине и оценке по дисциплине.
- Отдать информацию обо всех оценках по дисциплинам в виде HTML-страницы.
Полезные ссылки:
Выполнение работы:
- Работа выполняется индивидуально.
- По результатам необходимо подготовить отчет в виде текстового документа.
Оценивание:
- Выполнение пунктов 1-4 и однопользовательского чата (без потоков) — 60% баллов.
- Выполнение пунктов 1-5 и многопользовательского чата (с потоками) — 100% баллов.