- •Оглавление
- •Глава 1. Разработка клиент-серверных приложений на языке c#.
- •1.1. Преимущества платформы .Net.
- •1.2. Шифрование сетевых пакетов средствами .Net.
- •1.3. Протокол tcp.
- •Глава 2. Разработка системы обговления по.
- •2.1. Описание предметной области.
- •2. 2. Описание модели системы обновления по.
- •2.3. Схема и описание системы.
- •2.4. Описание процесса взаимодействия между серверной и клиентской частью.
- •2.5. Описание приложения-клиента и приложения-сервера.
- •2.6. Описание реализованных классов.
- •Глава 3. Описание работы системы.
- •3.1 Описание работы клиента.
- •3.2 Описание работы сервера.
- •Заключение
- •Список используемых источников
- •Приложение 1. Листинг 1. Пример файла Apps.Xml.
2.4. Описание процесса взаимодействия между серверной и клиентской частью.
Общая идея синтаксиса запросов: сначала идёт слово-название запроса, затем, после двоеточия, указываются параметры запроса, разделённые через запятую.
В настоящей системе реализованы две основные команды запроса.
Синтаксис команды запроса последней версии:
version:<название_приложения>
где <название_приложения> — название приложения, по которому необходимо получить информацию о последней версии.
Синтаксис запроса обновления приложения:
get:<название_приложения>,<версия>
где <название_приложения> — название приложения для обновления,<версия> — требуемая версия приложения.
2.5. Описание приложения-клиента и приложения-сервера.
Приложения написаны на языке VisualC#, являются приложениямиWindowsFormsна платформе .NET, что позволяет им запускаться на всех устройствах, поддерживающих .NET.
В приложениях были использованы классы:
System.Net.UdpClient— представляет возможности по развёртыванию сервера, клиента и обработки запросов.
System.Net.Sockets.IPEndPoint— представляет возможности для установления и настройки конечной точки сервера или клиента.
System.Net.Sockets.IPAddress— представляет возможности для обработки информации обIP-адресах.
И были реализованы основные методы:
Run— проверяет доступность порта, устанавливает конечную точку и, если это возможно, запускает сервер/клиент.
Stop— Останавливает сервер/клиент и освобождает ресурсы.
Listen— Переводит сервер в режим прослушивания порта и обрабатывает входящие запросы.
Update— Выполняет отправку запроса на обновление и выполняет принятие файла.
GetVersion— Выполняет отправку запроса на получение последней версии приложения и обрабатывает эту информацию.
Также были реализованы другие методы, не выполняющие основные функции, но упрощающие взаимодействие отдельных объектов приложения и улучшающих внешний вид и удобство приложения.
Все необходимый настройки находятся прямо на основных окнах клиента и сервера с помощью стандартных компонентов, так что пользователь сможет с лёгкостью настроить сервер или клиент прямо в интерфейсе приложения.
2.6. Описание реализованных классов.
В приложениях системы были реализованы следующие классы:
AppInfo. Класс реализован в приложении-клиенте и выполяет функцию инкапсулирования данных об одном приложении. Хранение таких данных в списке (List<AppInfo>) позволяет удобно сериализовать и десериализовать данные в файл-перечень приложений, используя стандартные средства языкаVisualc# (КлассXMLSerializer, методыSerializeиDeserializeсоответственно).
Поля
Тип данных
Описание
name
string
Название приложения
version
int
Текущая версия приложения
lastVersion
int
Последняя доступная версия приложения. 0, если последняя версия неизвестна
location
string
Расположение приложения
AppServer. Класс очень похож на классAppInfoи выполняет смежные функции. Класс реализован в приложении-сервере и выполяет функцию инкапсулирования данных об одном приложении, хранимом на сервере. Хранение таких данных в списке (List<AppInfo>) позволяет удобно сериализовать и десериализовать данные в файл-перечень приложений, используя стандартные средства языкаVisualc# (КлассXMLSerializer, методыSerializeиDeserializeсоответственно). В отличие от классаAppInfoэтот класс не содержит информации об установленной версии.
Поля |
Тип данных |
Описание |
name |
string |
Название приложения |
version |
int |
Текущая версия приложения |
location |
string |
Расположение приложения |