Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursova_OS_Vosstanovlen.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
495.87 Кб
Скачать
  1. Алгоритм клієнтського застосування

Блок-схема алгоритму клієнта показує, на якому етапі клієнт намагається підключитися до сервера. Також показано функції формування та надсилання повідомлення. Загальний механізм роботи клієнта показаний на Рис. 6.

Клієнт починає свою роботу з отримання параметрів для сокета. Якщо отримані параметри коректні, клієнт приєднується до сервера. Далі, протягом 20 хвилин відбувається передача повідомлень. Після закінчення 20 хвилин, з’єднання між клієнтом та сервером завершується.

На Рис. 7 зображена блок-схема алгоритму надсилання повідомлення від клієнта до сервера.

Рис. 6. Блок – схема алгоритму роботи клієнтського застосування

Надсилання повідомлень серверу починається зі створення самого пакету. Спочатку визначається розмір пакету за формулою . Далі визначаються часові затримки при передачі пакетів за формулою 𝑛= Після цього, генерується сам пакет, який відправляється серверу з певною, визначеною раніше, часовою затримкою.

Рис. 7. Блок – схема алгоритму надсилання повідомлення на стороні клієнта.

Розділ 3. Особливості програмної реалізації

В розділі описуються особливості програмної реалізації застосувань.

  1. Вибір мови та середовища розробки

Для розробки заданих застосувань було обрано мову програмування C++. Таке рішення було прийняте після аналізу переваг та недоліків декількох мов програмування. С++ має ряд переваг, серед яких її масштабованість, швидкодія та зручність написання програм. Також важливим фактором при прийнятті рішення була наявність деяких знань в області цієї мови програмування [4].

Розробка клієнтського та серверного застосувань проводилася в середовищі QNX Momentics IDE v4.7. це середовище було обране тому, що воно володіє широким набором зручних інструментів. Це середовище дозволяє одночасну відладку багато потокових застосувань. Також тут доступне профілювання програм, тобто дослідження виконання програм з метою їх оптимізації. Ця характеристика була дуже важливою під час розробки даного застосування [5].

Інструментальна операційна система Windows 7 Ultimate, 64-розрядна ОС.

  1. Мережева взаємодія на стороні сервера

Мережева взаємодія між клієнтом і сервером реалізується послідовністю системних викликів.

На стороні сервера, згідно з алгоритмом, на стороні сервера відбувається створення нового сокету за допомогою функції int socket

int socket( int domain, int type, int protocol) – це функція створення сокету. Параметр domain (INET) накладає обмеження на формат адрес, які використовує процес. Параметр type (SOCK_STREAM) визначає тип каналу зв’язку з сонетом, який має бути використаний. Параметр protocol – дозволяє обрати потрібний протокол для каналу зв’язку.

Далі по алгоритму відбувається пов’язання сокету з локальною адресою сервера. Пов’язання виконується функцією int bind.

int bind( int s, const struct sockaddr * name, socklen_t namelen ) – функція, яка прив’язує ім’я до сокету. Параметр s – ім’я сокету, sockaddr – локальна адреса, namelen – довжина імені.

Наступним кроком алгоритму є процес слухання наявності з’єднань на сокеті. Цей процес задається функцією int listen.

int listen( int s, int backlog ) – слухати з’єднання на сокеті. Параметр backlog задає максимальну довжину, до якої може рости черга очікуючих з’єднань.

В разі появи запиту на з’єднання встановлюється з’єднання з клієнтом функцією int accept.

int accept( int s, struct sockaddr * addr, socklen_t * addrlen ) – функція використовується з сокетами, орієнтованими на встановлення з’єднання. Аргумент s – сокет, який слухає з’єднання, addr – вказівник на структуру sockaddr, addrlen – довжина адреси в байтах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]