Windows-додаток Інтернет-пейджера по типу ICQ

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    1,02 Мб
  • Опубликовано:
    2013-08-06
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Windows-додаток Інтернет-пейджера по типу ICQ

РЕФЕРАТ

Пояснювальна записка до курсової роботи «Windows-додаток Інтернет-пейджера по типу ICQ».

Мета роботи - розробити сервер Windiws-додаток, що здійснюватиме передачу повідомленьв мережі.

Розроблений додаток виконуватиме з’єднання клієнта та сервера, двосторонню передачу повідомлень.

Результати курсової роботи рекомендується використовувати в практичній діяльності користувачів, які в процесі своєї роботи мають справу з передачею повідомлень у мережі.

СОКЕТ, АСИНХРОННА МОДЕЛЬ, ІНТЕРНЕТ ПЕЙДЖЕР, ПЕРЕДАЧА ПОВІДОМЛЕНЬ, ДОДАТОК.

СПИСОК ТЕРМІНІВ ТА СКОРОЧЕНЬ

Сокет (socket) - високорівневий уніфікований інтерфейс взаємодії з телекомунікаційними протоколами.

Інтернетпейджер - це програма для обміну миттєвими повідомленнями через комп’ютерні мережі в режимі реального часу.

Клієнт-сервер (англ. Client-server) - обчислювальна або мережева архітектура, в якій завдання або мережеві навантаження розподілені між постачальниками послуг (сервісів), званими серверами, і замовниками послуг, званими клієнтами.

Клієнт (англ. <#"650526.files/image001.gif">

Рис. 1 - Блок - схема роботи додатку «сервер»

2.1 Алгоритм циклічної передачі даних

Циклічна передача повідомлень починається з читання команди клієнта, а далі відбувається почергова передача повідомлень. Блок - схема циклічної передачі повідомлень зображена на рис. 2.

Рис. 2 - Блок - схема циклічного обміну даними зі сторони сервера

2.2 Алгоритм перекодування даних

Перекодування даних складається з двох частин. Перша частина - перекодування отриманої команди, нікнеймів та самого повідомлення у байти для того, щоб їх можна було обробляти. Друга частина - перетворення байтів команди, нікнеймів та повідомлення у текстовий формат для того, щоб користувач міг їх прочитати.

Блок-схема перекодування даних зображена на Рис. 3.


РОЗДІЛ 3. ОСОБЛИВОСТІ РЕАЛІЗАЦІЇ

.1 Вибір мови та середовища програмування

# - це об’єктно-орієнтована мова програмування з безпечною системою типізації для платформи .NET. синтаксис C# близький до С++. Мова має строгу статичну типізацію, підтримує поліморфізм, перевантаження операторів, вказівники на функції-члени класів, атрибути, події, властивості, винятки, коментарі у форматі XML.

Мова C# розроблялася як мова програмування прикладного рівня для CLR, і як така, залежить, насамперед, від можливостей самої CLR. Це стосується, перш за все, системи типів C#, яка відображає BCL. Присутність або відсутність тих чи інших виразних особливостей мови диктується тим, чи може конкретна мовна особливість бути трансльована у відповідні конструкції CLR. Так, з розвитком CLR від версії 1.1 до 2.0 значно збагатилася і сама мова C#. CLR надає C#, як і всім іншим .NET-орієнтованим мовам, багато можливостей, яких немає в «класичних» мовах програмування. Наприклад, збірка сміття не реалізована в самій мові C#, а проводиться CLR для програм, написаних на C# так само, як це робиться для програм на VB.NET, J# та ін.- лінійка продуктів компанії Майкрософт, що включають інтегроване середовище розробки програмного забезпечення та ряд інших інструментальних засобів. Дані продукти дозволяють розробляти як консольні додатки, так і додатки з графічним інтерфейсом, в тому числі з підтримкою технології Windows Forms, а також веб-сайти, веб-додатки, веб-служби як в рідному, так і в керованому кодах для всіх платформ, підтримуваних Microsoft Windows, Windows Mobile, Windows CE,. NETFramework,. NETCompactFramework і MicrosoftSilverlight. VisualStudio включає в себе редактор вихідного коду з підтримкою технології IntelliSense і можливістю найпростішого рефакторинга коду. Вбудований відладчик може працювати як відладчик рівня вихідного коду, так і як відладчик машинного рівня. Решта вбудовувані інструменти включають в себе редактор форм для спрощення створення графічного інтерфейсу програми, веб-редактор, дизайнер класів і дизайнер схеми бази даних. Visual Studio дозволяє створювати і підключати сторонні додатки (плагіни) для розширення функціональності практично на кожному рівні, включаючи додавання підтримки систем контролю версій вихідного коду (як наприклад, Subversion і Visual SourceSafe), додавання нових наборів інструментів (наприклад, для редагування та візуального проектування коду на предметно-орієнтованих мовах програмування або інструментів для інших аспектів циклу розробки програмного забезпечення (наприклад, клієнт Team Explorer для роботи з Team Foundation Server). Visual Studio 2010 (кодове ім'я Hawaii, для Ultimate - Rosario; внутрішня версія 10.0) - випущена 12 квітня 2010 разом с. NET Framework 4.0. Visual Studio включає підтримку мов C # 4.0 і Visual Basic. NET 10.0, а також мови F #, який був відсутній в попередніх версіях.

3.2 Архітектура додатка на базі сокетів

Розроблений додаток має архітектуру типу «клієнт-сервер» на основі сокетного з’єднання.

Клієнт-сервер - це вид розподіленої системи, в якій є сервер, що виконує запити клієнта, причому сервер і клієнт спілкуються між собою з використанням того чи іншого протоколу. В даному випадку використовуються протоколи сокету. Під клієнтом розуміється програма, що використовує ресурси, а під сервером (англійською - слуга) програма, що обслуговує запити клієнICQтів на отримання ресурсів певного виду.

Сокети (англ. socket поглиблення, гніздо, роз'єм) - це назва програмного інтерфейсу для забезпечення інформаційного обміну між процесами. Процеси при такому обміні можуть виконуватися як на одній ЕОМ, так і на різних ЕОМ, пов'язаних між собою мережею. Сокет - абстрактний об'єкт, що представляє кінцеву точку з'єднання.[7]

Сокет - це один кінець двостороннього каналу зв’язку між двома програмами, які працюють в мережі. Реалізація сокетів забезпечує інкапсуляцію протоколів мережевого і транспортного рівнів.

Існують два види сокетів: потокові та дейтаграмні.

Потокові сокети - це сокет з встановленим з’єднанням, який складається з потоку байтів, який може бути двонаправленим, тобто через цю кінцеву точку додаток може і передавати і отримувати дані. Потоковий сокет гарантує виправлення помилок, обробляє доставку і зберігає послідовність даних. Потокові сокети досягають такого рівня якості за рахунок використання протоколу TransmissionControlProtocol (TCP).TCP забезпечує поступлення даних на іншу сторону в потрібній послідовності і без помилок.

Для цього типу сокетів шлях формується до початку передачі повідомлень. Цим гарантується, що дві сторони, які беруть участь у взаємодії, приймають і відповідають. Якщо дані повинні гарантовано доставлятися іншій стороні або вони мають великий розмір і, якщо надійність зв’язку між двома додатками має першочергове значення, то використання саме потокових сокетів є більш прийнятним, ніж дейтаграмних. (Кровчик).

Слід розрізняти клієнтські та серверні сокети. Клієнтські сокети грубо можна порівняти з кінцевими апаратами телефонної мережі, а серверні - з комутаторами. Клієнтський додаток (наприклад, браузер) використовує лише клієнтські сокети, а серверний (наприклад, веб-сервер, якому браузер посилає запити) - як клієнтські, так і серверні сокети.

Кожен процес може створити слухаючий сокет (серверний сокет) і прив'язати його до будь-якого порту комп'ютера. Той хто слухає процес зазвичай знаходиться в циклі очікування, тобто прокидається при появі нового з'єднання. При цьому зберігається можливість просто перевірити наявність з’єднань на даний момент, встановити тайм-аут для операції і так далі. При створенні сокету, необхідно визначити три параметри: стиль взаємодії, простір імен, і протокол. Стиль взаємодії контролює, як сокет обробляє дані, що передаються, і визначає кількість партнерів взаємодії. Через сокети дані передаються блоками. Стиль взаємодії визначає, як ці пакети будуть оброблені і як вони передаються від відправника до одержувача. Стилі з'єднання гарантують доставку всіх пакетів у тому порядку, в якому вони були відправлені. Якщо під час передачі пакети були втрачені або доставлені в неправильному порядку, одержувач автоматично відправляє запит на їх повторну передачу. Цикл життя сервера складається зі створення сокету, прив'язки сокету до адреси, виклику listen, що дозволяє з'єднання з сокетом, виклику accept, що приймає вхідні з'єднання, і потім закриття сокета. Дані не читаються і не записуються безпосередньо через сокет сервера, замість цього, кожен раз коли програма приймає нове з'єднання, ОС створює окремий сокет, використовується при передачі даних по цьому з'єднанню. Архітектура з’єднання показана на рис. 4.

пейджер програма сервер сокет

Рис. 4 - Зображення архітектури «клієнт - сервер» на основі сокетів

3.3 Протокол взаємодії додатків клієнта та сервера

Протокол взаємодії сервера з клієнтом базується на основі отримання запитів від клієнта, їх обробці та відсилання відповідей на них.

Якщо сервер отримує повідомлення про те, що з’явився новий клієнт (Command.Login), то записуємо його у список користувачів онлайн (clientList.Add(clientInfo)) і відсилаємо всім користувачам (msgToSend.strMessage = "<- (" + msgReceived.strName + ") is ONLINE").

Новому клієнту сервер відсилає список всіх користувачів онлайн (msgToSend.strMessage += client.strName + "*").

Сервер починає прослуховування до отримання нових повідомлень (clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, newAsyncCallback(OnReceive), clientSocket)).

Якщо на сервер приходить текстове повідомлення від клієнта (msgToSend.cmdCommand == Command.Message), пересилаємо його необхідному клієнтові (clientInfo.socket.BeginSend(message, 0, message.Length, SocketFlags.None,newAsyncCallback(OnSend), clientInfo.socket)).

3.4 Основні бібліотеки, використані в програмі

- простір імен, що містить класи, які дозволяють зіставляти коди URI з шаблонами URI і групами шаблонів URI. З цього простору були використані такі класи: - перетворює базові типи даних в масив байтів і масив байтів в базові типи даних.- надає базовий клас для перечислень.- це базовий клас для класів, які містять дані про події.- представляє помилки, які відбуваються під час виконання додатку.- підтримує всі класи в ієрархії класів .NET Framework і надає низько рівневі служби для похідних класів. Він являється вихідним базовим класом для всіх класів платформи .NET Framework і коренем ієрархії типів.

У програмі був використаний інтерфейс IAsyncResult - він представляє стан асинхронної операції. Також використовується структура Int32 - представляє ціле 32-розрядне число з знаком..COLLECTIONS - містить інтерфейси і класи, які визначають різні колекції об’єктів, такі як списки, черги, двійкові масиви, хеш-таблиці і словники.

Використані класи:- реалізує інтерфейс IList за допомогою масиву з динамічною зміною розміру за необхідністю..TEXT - містить класи, які представляють кодування ASCII та Юнікод, абстрактні базові класи для перетворення блоків символів в блоки байтів та на оборот і клас підтримки, який управляє об’єктами String.

Використані класи:- представляє кодування символів..NET - представляє простий програмний інтерфейс для багатьох протоколів, які використовується в сучасних мережах.

Використані класи:- представляє мережеву кінцеву точку в вигляді ІР-адреси і номера порта.

Використаний делегат:- представляє метод, який вказує локальну ІР-адресу і номер порту для точки обслуговування ServicePoint. .NET.SOCKETS - надає реалізацію інтерфейсу Windows Sockets (Winsock) для тих розробників, яким необхідний жорсткий контроль доступу до мережі.

Використані класи:- реалізує інтерфейс сокетів.- представляє асинхронну операцію сокета.

Використані перечислення: - задає схему адресації, яку може використовувати екземпляр класу Socket.- задає протокол, який підтримує клас Socket.- вказує тип сокету, який є екземпляром класу Socket.

У програмі були використані такі методи класу Socket:(AsyncCallback, Object) - починає асинхронну операцію, щоб прийняти спробу вхідного підключення.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) <#"650526.files/image005.gif">

В полі внизу форми ввести повідомлення, яке необхідно передати, справа обрати клієнта, якому це повідомлення має бути доставлено та натиснути кнопку «Відправити».


Для виходу з додатка натиснути на «хрестик» в верхньому правому куті форми та натиснути кнопку «Да», щоб підтвердити вихід або кнопку «Нет» для скасування виходу.


ДОДАТОК Б

Тестування програми

Для тестування було запущено віртуальну машину VMware Workstation з встановленими на ній ОС Windows 7, Windows XP. Додаток сервера був запущений на ОС Windows XP, додатки клієнтів на обох ОС на віртуальній машині та на основній робочій ОС комп’ютера.

Запуск додатка сервера

Додаток сервера, запущений на ОС Windows XP:


Запуск додатка клієнта

Реєстрація нового клієнта на ОС Windows 7. В полі ІР серверу вказуємо ІР серверу, запущеного на ОС Windows ХР.


Вікно клієнта онлайн виглядає так:


Поява нових клієнтів

При появі нових клієнтів у кожного користувача оновлюється список, розташований в правій частині вікна:


Оновлення лога сервера при появі нових клієнтів онлайн:


Пересилання повідомлень

При пересиланні повідомлень вікна користувачів виглядають так:



Користувач отримав повідомлення:



Вихід з програми

Якщо будь-який користувач виходить з додатка, він автоматично видаляється зі списку тих, хто онлайн у всіх інших користувачів. Також це фіксується на сервері:


Похожие работы на - Windows-додаток Інтернет-пейджера по типу ICQ

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!