ежевих сервісів:
· Web-сервери
· Сервери додатків
· Сервери баз даних
· Файл-сервери
· Проксі-сервер
· файрвол (брандмауери)
· Поштові сервери
Переваги
· Відсутність дублювання коду програми-сервера програмами-клієнтами.
· Так як всі обчислення виконуються на сервері, то вимоги до комп'ютерів, на яких встановлений клієнт, знижуються.
· Всі дані зберігаються на сервері, який, як правило, захищений набагато краще більшості клієнтів. На сервері простіше забезпечити контроль повноважень, щоб дозволяти доступ до даних тільки клієнтам з відповідними правами доступу.
· Дозволяє об'єднати різні клієнти. Використовувати ресурси одного сервера часто можуть клієнти з різними апаратними платформами, операційними системами і т.п.
· Дозволяє розвантажити мережі за рахунок того, що між сервером і клієнтом передаються невеликі порції даних.
1.3 Протокол. Опис протоколу взаємодії
Так як моя робота полягає в створенні простого чату без спеціальних функція, то я вирішив що, набагато простіше буде написати свій власний протокол взаємодії сервера і клієнта, так як існуючі вже протоколи складні в освоєнні і мають безліч функцій які мені не знадобляться в моїй роботі.
Мій власний протокол буде використовувати текст для обміну, на відміну від бінарного протоколу обміну, текстовий набагато простіше в освоєнні і т. до моєї завданням є створення системи обміну миттєвими повідомленнями, то очевидно що, текстовий протокол є найкращим вибором.
Вибір протоколу транспортного рівня припав на протокол TCP/IP, з наступних причин:
· TCP/IP сокети використовуються для реалізації надійних поточних з'єднань між комп'ютерами в мережі Internet.
· З'єднання з використанням TCP/IP сокетів є постійним і визначається в двох напрямках. C допомогою TCP/IP сокетів можна програмувати підключення систем введення/виводу до програм, розташованим на будь-якому комп'ютері в мережі.
· Крім цього TCP/IP сокети дозволяють реалізувати підключення і до локальної машині.
· Найчастіше на практиці для з'єднання по TCP/IP сокетів на комп'ютерах відкриваються певні порти, що дозволяє розширити і розмежувати канал підключення комп'ютера.
Все взаємодія сервера і клієнта буде полягати в спеціальних командах посилаються один одному у вигляді текстових рядків.
Спочатку кожної команди стоїть знак #, після йде сама команда, а після команди параметри притаманні цій команді, в загальному вигляді це виглядає так:
# lt; Команда gt; [ lt; параметр1 gt; {; lt; параметр1 gt;}]
Повний список Спеціальних команд сервера і клієнта, представлений нижче в таблиці №1 і №2.
Команди сервера
Таблиця №1 (Команди сервера).
КомандаІнтерпретація # M lt; ім'я відправника gt ;; lt; повідомлення gt; Повідомлення для всіх підключених клієнтів. # N lt; ім'я відправника gt; Клієнт посилає своє ім'я (nickname) # P lt; ім'я відправника gt ;; lt; ім'я одержувача gt ;; lt; повідомлення gt; Приватне повідомлення # F lt; ім'я файлу gt; Отримання файлу # S lt; ім'я файлу gt; Відправлення файлу всім клієнтам
Особливості:
· При отриманні повідомлення, неважливо загальне воно чи приватне, сервер надсилає його усім підключеним до нього клієнтам, але приймає це повідомлення тільки клієнт, чиє ім'я збігається з ім'ям одержувача, у випадку з приватним повідомленням.
· При отриманні, якого або файлу сервер зберігає файл в тимчасовій папці і після цього розсилає файл всім підключеним клієнтам. (Файли в папці зберігаються до вимикання програми)
· Значення приватності не працює при пересиланні файлу.
Команди клієнта
Таблиця №2 (Команди клієнта).
КомандаІнтерпретація # F lt; ім'я файлу gt; Отримання файлу. # K lt; нове ім'я gt; Сервер надіслав новий нік # U { lt; ім'я gt;} Сервер надіслав список клієнтів # M lt; повідомлення gt; Загальна повідомлення # P lt; ім'я відправника gt ;; lt; ім'я одержувача gt ;; lt; повідомлення gt; Прив...