Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Podobne dokumenty
Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Podstawy programowania w Qt4

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Qt sygnały i designer

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Wprowadzenie do biblioteki klas C++

Programowanie w środowiskach RAD QtCreator, Qt i C++

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Programowanie obiektowe zastosowanie języka Java SE

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

16) Wprowadzenie do raportowania Rave

Zaawansowane aplikacje internetowe - laboratorium

Qt - podstawowe cechy

Programowanie obiektowe

PRZYJĘTE ZASADY GRY...3 ZAŁOŻENIA PROJEKTU...4 CZYM JEST I DLACZEGO QT?...5 DIAGRAM KLAS...7 DIAGRAM GRY SINGLE PLAYER...8 DIAGRAM MULTIPLAYERA...

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

The Graphics View Framework. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. he Graphics View Framework - architektura

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Konfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

4. Podstawowa konfiguracja

Aplikacje RMI

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

MentorGraphics ModelSim

1.Wstęp. 2.Generowanie systemu w EDK

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

OpenLaszlo. OpenLaszlo

Architektura systemu e-schola

onfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Tworzenie oprogramowania

Zaawansowane programowanie w C++

Standardy programowania protokołów komunikacyjnych Laboratorium nr 5 komunikacja multicastowa IPv6

Programowanie Systemów Czasu Rzeczywistego

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Zaawansowane aplikacje WWW - laboratorium

Programowanie obiektowe

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Programowanie Obiektowe GUI

Ćwiczenie 1. Przygotowanie środowiska JAVA

Instalacja Active Directory w Windows Server 2003

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Plan nauczania informatyki Opracował: mgr Daniel Starego

REFERAT PRACY DYPLOMOWEJ

Aplikacje w środowisku Java

Poziomy wymagań Konieczny K Podstawowy- P Rozszerzający- R Dopełniający- D Uczeń: - zna rodzaje sieci - zna topologie sieciowe sieci

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)


6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

ZAPOZNANIE SIĘ Z TWORZENIEM

Język programowania. Andrzej Bobyk

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

DESlock+ szybki start

Szablony funkcji i klas (templates)

Podstawy Programowania 2

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Wstęp do Informatyki. Klasyfikacja oprogramowania

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Rok akademicki: 2014/2015 Kod: MIO s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Utworzenie pliku. Dowiesz się:

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

5.2. Pierwsze kroki z bazami danych

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Telnet. Telnet jest najstarszą i najbardziej elementarną usługą internetową.

Instrukcja instalacji Control Expert 3.0

Tomasz Greszata - Koszalin

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konfiguracja kolejności interfejsów sieciowych w Windows 10 dla oprogramowania Wonderware

Tworzenie i wykorzystanie usług sieciowych

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C

1. Przygotowanie konfiguracji wstępnej Windows Serwer 2008 R2

Laboratorium A: Zarządzanie drukowaniem/klucz do odpowiedzi

Aplikacje w środowisku Java

Zadanie1: Odszukaj w Wolnej Encyklopedii Wikipedii informacje na temat NAT (ang. Network Address Translation).

Leszek Stasiak Zastosowanie technologii LINQ w

Wprowadzenie do projektu QualitySpy

PROFFICE/ MultiCash PRO Zmiana parametrów komunikacji VPN do połączenia z Bankiem Pekao S.A.

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

BACKUP BAZ DANYCH FIREBIRD

Transkrypt:

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt 1. Wprowadzenie Wymagania wstępne: wykonanie ćwiczeń Adresacja IP oraz Implementacja aplikacji sieciowych z wykorzystaniem interfejsu gniazd BSD. Środowisko Qt, którego producentem jest firma Trolltech (www.trolltech.com), jest zestawem narzędzi i klas do tworzenia graficznych aplikacji w języku C++. Oprogramowanie to jest dostępne dla wielu systemów operacyjnych, m.in. dla systemów Windows, Mac oraz Unix/Linux. Qt dla systemów Unix/Linux jest bezpłatne, jeśli jest używane do pisania darmowego oprogramowania z otwrtym dostępem do kodu źródłowego; kod źródlowy samego środowiska jest dostępny nieodpłatnie na warunkach licencji publicznej QPL (Qt Public License). Biblioteka Qt jest w pełni obietkowa i pozwla na przenoszenie kodu na różne platformy (wymagana jest rekompilacja). Zawiera ona bogaty zestaw klas, które pozwalają m.in. na obsługę baz danych, sieci i protokołów komputerowych, grafiki 2D i 3D oraz XML. Graficzny interfejs tworzonej aplikacji może być zaprojektowny przy użyciu wizualnego narzędzia o nazwie Qt Designer. Designer jest programem, który pozwala na wizualne tworzenie interfejsu aplikacji oraz na implementację funkcjonalności wszystkich jego elementów. Do dyspozycji programista ma zbiory kontrolek (ang. widget), gotowe przykłady okien dialogowych i aplikacyjnych oraz odpowiednie kreatory. Oprócz programu Designer istnieją także inne programy do konstruowania interfejsów graficznych aplikacji Qt, są to m.in. Qt Architect (qtarch.sourceforge.net) oraz KDE Studio (www.thekompany.com/projects/kdestudio). 1.1 Sygnały i odbiorniki Środowisko Qt wykorzystuje mechanizm komunikacji pomiędzy obiektami o nazwie sygnały i odbiorniki (ang. signals and slots) jest on najczęściej używany do połączenia zdarzeń (wywołanych np. przez użytkownika lub przybycie komunikatu) z kodem aplikacji odpowiadającym za obsługę tych zdarzeń. Każdy obiekt w środowisku Qt może emitować i wysłuchiwać dowolną ilość sygnałów; każdy sygnał może mieć dowolną liczbę odbiorników, a każdy odbiornik może reagować na dowolną ilość sygnałów. Połączenia mogą być realizowane pomiędzy sygnałem a odbiornikiem, jeśli ich parametry są tego samego typu; odbiornik może posiadać mniej parametrów niż sygnał (ale nie odwrotnie), wówczas nadmiarowe argumenty sygnału są pomijane. Aby obiekt mógł korzystać z mechanizmu sygnałów-odbiorników, jego klasa musi dziedziczy z klasy QObject (lub z klasy potomnej QObject), a w jej definicji należy umieścić makro Q_OBJECT (kod z taką definicją jest przetwarzany przez preprocesor, który generuje kod wynikowy, obsługiwany przez kompilator C++). Odbiorniki (ang. slots) mogą być deklarowane jako: publiczne (public slots), chronione (protected slots) i prywatne (private slots). Przykład nr 1 prezentuje klasę, w ramach której utworzono odbiornik, sygnał oraz połączenie pomiędzy sygnałem i odbiornikiem dwóch różnych obiektów.

class myexample : public QObject Q_OBJECT //makro public: void myfunction(); public slots: void myslot(int ifoo); //deklaracja odbiornika signals: void mysignal(int iwoo); //deklaracja sygnału private: int ieoo = 1; void myexampl::myfunction() emit mysignal(ieoo); //emisja sygnału mysignal int main() myexample a,b; //połączenie sygnału i odbiornika dwóch różnych obiektów connect(&a, SIGNAL(mySignal(int)), &b, SLOT(MySlot(int)));... Przykład nr 1. Klasa zawierająca deklarację odbiornika i sygnału oraz połączenie pomiędzy sygnałem i odbiornikiem dwóch różnych obiektów. Metoda sygnałów-odbiorników może być używana zarówno do obsługi zdarzeń generowanych prze graficzny interfejs użytkownika, jak i zdarzeń związanych z obsługą komunikatów sieciowych. Przykład nr 2 ilustruje wykorzystanie sygnału obiektu klasy QDns, o uzyskaniu numeru IP komputera o podanej nazwie domenowej. //utworzenie nowego obiektu i podanie nazwy domenowej do rozwiązania m_mydns = new Qdns(lineEditAddress->text()); //połączenie sygnału uzyskania adresu IP z funkcja obsługi QObject::connect(m_MyDns, SIGNAL(resultsReady()), m_myobject, SLOT (ConnectToServer())); //funkcja obsługi sygnału z klasy obiektu m_myobject MyClass::ConnectToServer()... Przykład nr 2. Wykorzystanie sygnału klasy QDns do obsługi zdarzenia uzyskania adresu IP. 1.2 Tworzenie aplikacji przy pomocy QDesigner Utworzenie graficznego interfejsu aplikacji przy pomocy narzędzia QDesigner, wymaga następujących kroków: utworzenie nowego projektu File New C++ Project... powoduje to m.in. utworzenie pliku z rozszerzeniem.pro, który jest używany przez narzędzie qmake, do generowania pliku Makefile; utworzenie nowego okna dialogowego np. File New Dialog...;

dodanie do utworzonego okna kontrolek (ang. widgets) niezbędnych dla funkcjonalności aplikacji, są one dostępne w okienku Toolbox; możliwe jest uruchamianie podglądu wyglądu tworzonej aplikacji przy pomocy komendy: Preview Preview Form...; dodanie połączeń sygnał-odbiornik do obsługi zdarzeń związanych z interfejsem graficznym i jego kontrolkami; w aplikacji QDdesigner służy do tego specjalne okno uruchamiane poleceniem: Edit Connections rysunek nr 1; Rysunek nr 1. Okno umożliwiające edycję połączeń sygnał-odbiornik. być może konieczne będzie dodanie nowego odbiornika (ang. slot), do obsługi zdarzeń można to wykonać wybierając polecenie Edit Slots... w oknie dialogowym obsługi połączeń (rysunek nr 1); wyświetlone zostanie wówczas kolejne okno do automatycznego dodawania funkcji i odbiorników rysunek nr 2; dodanie kodu obsługi zdarzeń i funkcji aplikacji implementacji należy dokonać w pliku uruchamianym z okna Project Overview (nazwa pliku jest następująca: nazwa_okna_dialogowego.ui.h); ostatecznie należy utworzyć plik z główną funkcją (ang. main) aplikacji służy do tego kreator uruchamiany poleceniami: File New C++ Main File...; utworzony plik nie musi podlegać żadnym zmianą; po zapisani wszystkich zmian, należy skompilować cały projekt; w tym celu wykorzystuje się narzędzie qmake, które generuje odpowiedni plik Makefile (na podstawie pliku projektu.pro) dla programu make; kompilacja wymaga więc następujących komend: qmake -o Makefile./projekt.pro make

Rysunek nr 2. Okno edycji funkcji i odbiorników. 1.3 Klasy biblioteki Qt do obsługi sieci i protokołów komputerowych Bogaty zestaw klas dostarczany w ramach środowiska Qt zawiera także klasy, które ułatwiają programistom tworzenie aplikacji sieciowych. Wśród tych klas znajdują się rozwiązania upraszczające korzystanie z gniazd komunikacji sieciowej i systemu DNS oraz do sprawnej implementacji protokołów sieciowych. Poniżej znajduje się lista najistotniejszych klas związanych z sieciami komputerowymi: QSocket: klasa umożliwia realizację buforowanych połączeń TCP; QSocketDevice: klasa niezależnej od platformy obsługi interfejsu gniazd; pozwala na realizację połączeń TCP i UDP oraz obsługuje protokoły IP w wersjach 4 i 6; QServerSocket: klasa obsługi nadchodzących połączeń TCP, przeznaczona do zastosowania przy implementacji serwerów; QSocketNotifier: klasa pomocnicza do obsługi gniazd; pozwala na asynchroniczną (nieblokującą) obsługę gniazd, poprzez udostępnianie sygnału informującego o zdarzeniu związanym ze wskazanym gniazdem; QNetworkProtocol: klasa ułatwiająca implementację protokołów sieciowych; klasa ta dostarcza zbiór metod adekwatnych do podstawowych operacji protokołów do metod tych należy dodać funkcjonalność właściwą dla implementowanego protokołu; QNetworkOperation: klasa opisująca stan operacji protokołu sieciowego; QDns: klasa asynchronicznych zapytań DNS (rozwiązywanie nazw domenowych w adresy IP). Oprócz wymienionych klas przydatne w implementacjach sieciowych mogą być także m.in. klasy: QFtp, QHttp, QHttpHeader, QHttpRequestHeader, QHttpResponseHeader oraz QUrl, QUrlDrag, QUrlInfo, QurlOperator.

2 Organizacja, wymagany sprzęt, oprogramowanie 1. Zadanie wykonywane jest pojedynczo przez wszystkich studentów (lub w parach); 2. sprzęt: 2 komputery; 3. oprogramowanie: biblioteka Qt, Qt Designer, narzędzia qmake i make oraz kompilator gcc. 3 Zadania 1. Na jednym z komputerów należy uruchomić serwer daytime; zadanie polega na napisaniu graficznego programu sieciowego klienta przy użyciu biblioteki Qt (i narzędzia Qt Designer), który uruchomiony na drugim komputerze odczyta informacje z uruchomionego serwera. Należy użyć trybu połączeniowego, korzystając z klasy QSocketDevice. 2. Wzbogacić powyższy program o obsługę nazw domenowych przy pomocy klasy QDns. 4 Pytania sprawdzające 1. Dlaczego do implementacji graficznych aplikacji sieciowych zaleca się używania połączeń nieblokujących? 2. W jakim kontekście zostanie wykonany kod odbiornika, jeśli sygnał został nadany przez wątek? 3. Czy możliwe jest zastąpienie funkcji systemowej select(), w aplikacji sieciowej, rozwiązaniem środowiska Qt bez utraty funkcjonalności? Jeśli tak, to jakim i w jaki sposób? 5 Literatura 1. Internet: www.trolltech.com/qt, dokumentacja http://doc.trolltech.com/3.3/index.html, whitepapers http://www.trolltech.com/products/whitepapers.html. 2. Neil M., Stones R.,: Zaawansowane programowanie w systemie Linux, Helion, 2000.