й лічильник часу отримання останнього пакета і заносить запис про здобутий пакеті в журнал подій. p align="justify"> При отриманні пакету результату пошуку гри клієнт або починає гру з опонентом, зазначеному в пакеті, або, якщо гра не була знайдена, виходить з режиму пошуку гри. При отриманні пакету ходу суперника, на ігровому полі користувача відзначається хід опонента. При отриманні пакету повідомлення в спеціальному списку повідомлень відображається отримане повідомлення. При вході або виході користувача до цього списку повідомлень додається запис про це. При отриманні пакету опитування доступності клієнт нічого не робить. p align="justify"> Алгоритм роботи клієнтської частини програми при отриманні пакетів зображений на малюнку 2.4. В
Малюнок 2.4. UML-діаграма дій клієнта при прийомі пакетів. br/>
2.4.4 Втрата з'єднання з сервером
При роботі програмного комплексу можлива така ситуація, що зв'язок між клієнтом і сервером буде втрачена. У такому випадку необхідно коректно обробити даний розрив. Перевірка на наявність з'єднання відбувається як з боку сервера, так і з боку клієнта. p align="justify"> Для перевірки наявності з'єднання з сервером клієнт веде лічильник, який відображає час останнього отриманого пакету. Періодично клієнт перевіряє, чи перевищує різниця між поточним часом і часом отримання останнього пакета деяку константу, що позначає максимальну затримку між пакетами. Якщо ця різниця більше константи, то це означає, що з'єднання з сервером було порушено, і ніякі пакети не можуть бути отримані від нього. У такому випадку клієнт закриває TCP-з'єднання з сервером і закриває вікно програми, переходячи до вікна входу на сервер. Якщо ж різниця менше константи, то сервер продовжує очікувати нові пакети з боку сервера. Клієнтську перевірку часу прийому останнього пакета зручно проводити в циклі прийому пакетів від сервера. br/>
2.5 Висновки
У даному розділі були розглянуті архітектура розроблюваного програмного комплексу, структура пакетів власного протоколу обміну даними, а також основні алгоритми взаємодії та обміну даними між клієнтом і сервером.
3. Технологічна частина
У даному розділі розглянуті мови програмування та засоби розробки програмного комплексу, описані використовувані зовнішні бібліотеки, описано структуру програми-сервера і програми-клієнта, визначені системні вимоги до кінцевого користувача, описані можливості роботи з додатками, а також розглянуті і протестовані деякі граничні випадки функціонування програмного комплексу.
3.1 Вибір мови програмування
Для створення програмного комплексу була обрана мова програмування C #. Цей вибір був зроблений на підставі кількох причин. p align="justify"> По-перше, даний мову призначений для створен...