Загрузчик. Диплом_Сайтиев_Release. Реализовать приложениесервер в среде MicrosoftVisualStudioна языкеVisualC#
Скачать 378.04 Kb.
|
1.3. Протокол tcp.В качестве протокола передачи данных в сети будет использоваться TCP. Протокол реализован в контексте клиента и сервера. В отличии от других протоколов,TCPявляется надёжным благодаря следующим качествам: сверка контрольных сумм для проверки целостности передаваемых пакетов осуществление повторного запроса данных в случае потери данных устранение дублирования при получении двух копий одного пакета. Передача пакетов начинается с установления соединения (в отличии от UDP). Состояние сеанса описывается благодаря флагам.
Таблица 1. Состояния сеанса TCP. Соединение разделяют на следующие стадии: установка соединения послание серверу сегмента с номером последовательности и флагом SYN если клиент получает сегмент с флагом SYN, то он запоминает номер последовательности и посылает сегмент с флагом ACK если сервер в состоянии SYN-RECEIVED получает сегмент с флагом ACK, то он переходит в состояние ESTABLISHED передача данных завершение соединения посылка серверу от клиента флагов FIN и ACK на завершение соединения. сервер посылает клиенту флаги ответа ACK, FIN, что соединение закрыто. после получения этих флагов клиент закрывает соединение и в подтверждение отправляет серверу ACK, что соединение закрыто. Из недостатков TCPотмечают уязвимость к атакамTCPResetиTCPhijacking ГЛАВА 2. РАЗРАБОТКА ПРОГРАММНОГО ПРОДУКТА 2.1. Архитектура Библиотеки UpdateLibrary Updatelibrary-представляет собой библиотеку классов ,которую разработчики могут подстраивать под свои проекты, легко добавлять функцию автоматического обновления в свои приложения на рабочем столе (Windows, macOS и Linux). Рисунок1.3.Архитектура Библиотеки UpdateLibrary Исправление ошибок и добавление новых функций является частью разработки программных приложений. Отправка обновлений приложений пользователям также является важной частью разработки приложений, особенно когда пользователь не имеет глубоких знаний о компьютерах. Сегодня в эпоху Интернета разработчик программного обеспечения должен упростить развертывание и обновление приложений и часто делает автоматические обновления приложений для этого. Этот проект разработан на C # ,как библиотека с именем проекта “UpdateLibrary”. DLL “UpdateLibrary” можно использовать в приложении C # Windows (WinForm, WPF, UWP и Xamarin). Есть определенные особенности в UpdateLibrary:Легко внедряется и используется. Автоматический повторный запуск приложения после проверки обновления. Процесс обновления прозрачен для пользователя . Чтобы избежать блокировки основного потока, используйте многопоточную загрузку. Возможность обновления системы, а также программы автоматического обновления. Код, который не нуждается в изменении при использовании различными системами и может быть скомпилирован в библиотеке. Пользователю легко загружать файлы обновлений. В программе, которую вы хотите автоматически обновить, вам просто нужно вызвать функцию AutoUpdate в Основной процедуре. Функция AutoUpdate сверит версию с версией, прочитанной из файла, расположенного на веб-сайте / FTP. Если версия программы ниже прочитанной, программа загружает программу автоматического обновления и запускает ее, а функция возвращает True, что означает, что будет запущено автоматическое обновление и текущая программа должна быть закрыта. Программа автоматического обновления получает несколько параметров от программы, подлежащей обновлению, выполняет необходимое автоматическое обновление и после этого запускает обновленную систему. Р исунок 1.3. Окно Процесса Обновления #проверка региона и загрузка новой версии программы bool bHasError = ложь; IUpdateLibrary UpdateLibrary = новый UpdateLibrary(); попробуй { Автопатруль.Update(); } catch (WebException exp) { MessageBox.Показать ("Не удается найти указанный ресурс"); bHasError = true; } catch (XmlException exp) { bHasError = true; MessageBox.Показать ("Загрузить ошибку файла обновления"); } catch (NotSupportedException exp) { bHasError = true; MessageBox.Показать ("Ошибка конфигурации адреса обновления"); } catch (ArgumentException exp) { bHasError = true; MessageBox.Показать ("Загрузить ошибку файла обновления"); } catch (Exception exp) { bHasError = true; MessageBox.Показать ("Произошла ошибка в процессе обновления"); } наконец { if (bHasError == true) { попробуйте { UpdateLibrary.RollBack (); } catch (исключение) { // Запишите сообщение в свой файл или базу данных } } } #endregion |