
- •Федеральное агентство связи
- •Московский технический университет связи и информатики
- •1 Задание
- •2 Содержание Оглавление
- •3 Введение
- •4 Основная часть
- •4.1 Задачи курсовой работы
- •4.2 Краткие теоретические основы разрабатываемой темы
- •4.2.1 Межпроцессное взаимодействие. Сокеты
- •4.2.2 Средства синхронизации процессов
- •4.3 Разработка и описание алгоритма работы приложения
- •4.5 Руководство пользователя
- •4.6 Демонстрация программы
- •5 Заключение
- •6 Список использованных источников
- •7 Приложение
- •7.1 Исходный код первого сервера
- •7.2 Исходный код второго сервера
- •7.3 Исходный код клиента
4.6 Демонстрация программы
Рисунок 5 – Окно клиентского приложения после запуска
Рисунок 6 – Окно клиентского приложения после получения данных от сервера
Рисунок 7 – Диалоговое окно при возникновении ошибки подключения к серверу
Рисунок 8 – Работа первого сервера
Рисунок 9 – Работа второго сервера
5 Заключение
Таким образом, целью курсовой работы были поставлены закрепление и углубление теоретических знаний в области современных операционных систем, приобретение практических навыков разработки клиент-серверных приложений, использующих стандартные механизмы межпроцессного взаимодействия.
Путем изложения кратких теоретических основ разрабатываемой темы в части 4.2 я закрепил свои знания в области современных ОС, а именно знания о методах межпроцессного взаимодействия и средствах синхронизации процессов. Также я углубил знания в области использования сокетов для взаимодействия процессов на разных ЭВМ по сети и использования мьютексов для предотвращения повторного запуска приложения. Кроме того, я улучшил понимание принципов работы протоколов транспортного уровня TCP и UDP.
Для приобретения практических навыков разработки клиент-серверных приложений, использующих стандартные механизмы межпроцессного взаимодействия в соответствии с заданием курсовой работы, были разработаны серверные приложения и приложение-клиент, обменивающиеся данными через интерфейс сокетов.
После разработки приложений можно сделать вывод, что API сокетов, несмотря на свою низкоуровневость, является достаточно удобным способом организации межпроцессного взаимодействия по сети. Дополнительным плюсом является, конечно же, широкая поддержка советов на большинстве современных ОС, при этом программный интерфейс практически не отличается. Однако, при разработке возникает и множество сложностей: выбор между блокирующими и асинхронными сокетами, выбор между потоковой и датаграммной передачей, проблемы кодирования, необходимость обработки большого множества возможных ошибок.
В заключение можно отметить, что на данный момент сокеты используются повсеместно и навык работы с данным API является крайне ценным опытом.
6 Список использованных источников
Межпроцессное взаимодействие // Википедия: свободная энциклопедия [Электронный ресурс] /. — Электрон. текстовые дан. — Режим доступа: https://ru.wikipedia.org/wiki/Межпроцессное_взаимодействие, свободный.
Winsock // Википедия: свободная энциклопедия [Электронный ресурс] /. — Электрон. текстовые дан. — Режим доступа: https://ru.wikipedia.org/wiki/Winsock, свободный.
Interprocess Communications // MSDN: Каталог API (Microsoft) и справочных материалов [Электронный ресурс] /. — Электрон. текстовые дан. — Режим доступа: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa365574.aspx, свободный.
Windows Sockets 2 // MSDN: Каталог API (Microsoft) и справочных материалов [Электронный ресурс] /. — Электрон. текстовые дан. — Режим доступа: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms740673.aspx, свободный.
Клиент - сервер // Википедия: свободная энциклопедия [Электронный ресурс] /. — Электрон. текстовые дан. — Режим доступа: https://ru.wikipedia.org/wiki/Клиент_—_сервер