Qt in Education. Sieć I drukowanie



Podobne dokumenty
Tłumaczenie i adaptacja materiałów: dr Tomasz Xięski. Na podstawie prezentacji udostępnionych przez Digia Plc. na licencji CC.

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Dr Michał Tanaś(

Programowanie w Internecie

Studium przypadku Case Study CCNA2-ROUTING. Warianty projektów

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Platformy Programistyczne Zagadnienia sieciowe i wątki

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

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

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

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

Stos TCP/IP. Warstwa aplikacji cz.2

Komunikacja z użyciem gniazd aplikacje klient-serwer

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Model warstwowy Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa Warstwa aplikacj. Protokoły sieciowe

Tłumaczenie i adaptacja materiałów: dr Tomasz Xięski. Na podstawie prezentacji udostępnionych przez Digia Plc. na licencji CC.

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Laboratorium nr 4 - Badanie protokołów WWW

Rok akademicki: 2012/2013 Kod: ITE s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Programowanie Sieciowe 1

Java wybrane technologie

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium przyrządów wirtualnych. Ćwiczenie 4

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Tomasz Greszata - Koszalin

Sieci komputerowe. Wykład dr inż. Łukasz Graczykowski

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Mechanizmy pracy równoległej. Jarosław Kuchta

Sieci komputerowe. Wykład 8: Warstwa zastosowań: FTP i HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Tomasz Greszata - Koszalin

Programowanie współbieżne i rozproszone

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Instrukcja konfiguracji funkcji skanowania

Bazy Danych i Usługi Sieciowe

System operacyjny UNIX Internet. mgr Michał Popławski, WFAiIS

Poradnik korzystania z usługi FTP

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Wybrane działy Informatyki Stosowanej

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

Wybrane działy Informatyki Stosowanej

E.13.1 Projektowanie i wykonywanie lokalnej sieci komputerowej / Piotr Malak, Michał Szymczak. Warszawa, Spis treści

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

1. W protokole http w ogólnym przypadku elementy odpowiedzi mają: a) Postać tekstu b) Postać HTML c) Zarówno a i b 2. W usłudze DNS odpowiedź

3. Wymagania wstępne w zakresie wiedzy, umiejętności i kompetencji społecznych Wiedza

DOKUMENTACJA INTERFEJSU API - HTTPS

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

Wszystkie parametry pracy serwera konfigurujemy w poszczególnych zakładkach aplikacji, podzielonych wg zakresu funkcjonalnego.

1. Model klient-serwer

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Bezpieczny system poczty elektronicznej

Sieci komputerowe i bazy danych

Protokoły internetowe

Gniazda BSD implementacja w C#

Komunikator internetowy w C#

Tworzenie aplikacji rozproszonej w Sun RPC

Sieci komputerowe. Wstęp

Laboratorium 3.4.3: Usługi i protokoły

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Uwaga!!! Autentykacja LDAP/AD zaimplementowana w Vigor wspiera tylko proste uwierzytelnianie (hasło przesyłane jest jawnym tekstem).

BSX PRINTER INSTRUKCJA UŻYTKOWNIKA. Autor: Karol Wierzchołowski 30 marca 2015

Sieci komputerowe Warstwa aplikacji

Protokoły zdalnego logowania Telnet i SSH

Laboratorium - Poznawanie FTP

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Programowanie sieciowe

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Ćwiczenie 2. Obsługa gniazd w C#. Budowa aplikacji typu klient-serwer z wykorzystaniem UDP.

Biuletyn techniczny. Konfiguracja połączenie z serwerem MSSQL 2000 CDN OPT!MA Copyright 2006 COMARCH SA

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Protokoły sieciowe - TCP/IP

7. Konfiguracja zapory (firewall)

Po pobraniu plików instalacyjnych w pierwszej kolejności dokonujemy instalacji serwera ESET Remote Administrator Server

World Wide Web? rkijanka

Manual konfiguracji konta dla fax2mail

Architektura aplikacji sieciowych. Architektura klient-serwer

Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła

1 IMAP czy POP3? 2 Instalacja programu Mozilla Thunderbird

Połączenie VPN Host-LAN SSL z wykorzystaniem przeglądarki. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Konto SSL 1.3. Grupa użytkowników

Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Telekomunikacji

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

SIECI KOMPUTEROWE. Podstawowe wiadomości

POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP

Kurs Ethernet przemysłowy konfiguracja i diagnostyka. Spis treści. Dzień 1

Politechnika Śląska w Gliwicach Instytut Automatyki 2005/2006

Instalacja NOD32 Remote Administrator

Informacje które należy zebrać przed rozpoczęciem instalacji RelayFax.

Którą normę stosuje się dla okablowania strukturalnego w sieciach komputerowych?

Sprawozdanie nr 4. Ewa Wojtanowska

Laboratorium 3.4.2: Zarządzanie serwerem WWW

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok I, semestr II

Aplikacje WWW i PHP - opis przedmiotu

Lab5 - Badanie protokołów pocztowych

Wstęp do systemów wielozadaniowych laboratorium 01 Organizacja zajęć

Systemy Wymiany Informacji

Projekt e-deklaracje 2

Transkrypt:

Qt in Education Sieć I drukowanie. 1

Tłumaczenie i adaptacja: dr inż. Piotr Kaczmarka na podstawie kursu na podstawie materiału Diga Plc. Materiały służą do prowadzenia zajęć z informatyki dla studentów Automatyki i Robotyki Politechniki Poznańskiej. 2012 Digia Plc. The enclosed Qt Materials are provided under the Creative Commons Attribution-Share Alike 2.5 License Agreement. The full license text is available here: http://creativecommons.org/licenses/by-sa/2.5/legalcode. Digia, Qt and the Digia and Qt logos are the registered trademarks of Digia Plc. in Finland and other countries worldwide. 2

Sieć w Qt Moduł QtWebKit umożliwia renderowanie strony www bezpośredniow aplikacji, dostęp do javascript itp QNetworkAccessManager udostępnia interfejs do wysyłania i odbierania zapytań przez sieć QFtp implementuje klienta ftp QTcpSocket i QTcpServer udostępniają mechanizmy protokołu TCP QsslSocket udostępnia szyfrowany protoków TCP QUdpSocket Udostępnia mechanizmy protokołu UDP 3

Protokoły HTTP, FTP, SMTP, POP, IMAP, etc Przeglądanie sieci przy użyciu Hyper-Text Transfer Protocol Kodowanego http: https TCP IP (IPv4 and IPv6) HTTP jest nadbudówką TCP opartego o protokół IP Innet protokoły wykorzystujące TCP/IP: FTP, SMTP, POP, IMAP 33

FTP Do obsługi służy klasa QFtp FTP umożliwia Zalogowanie na serwer Pobranie listy plików Przemiszczanie się w przestrzeni katalogów upload i download plików 34

Pobranie pliku przez FTP Żeby pobrać plik z ftp.qt.nokia.com/qt/source/readme używając QFtp muszą być zrealizowane następujące czynności connecttohost("ftp.qt.nokia.com") Podanie loginu i hasła get("/qt/source/readme") close 35

Podział URL klasa QUrl może być wykorzystana do podiału adresu na części ftp://ftp.qt.nokia.com/qt/sources/readme scheme host path QUrl url("ftp://ftp.qt.nokia.com/qt/sources/readme"); QString host = url.host(); QString path = url.path(); 36

Pobranie pliku przez FTP Każda komenda wydawana przez Qftp jest asynchroniczna Kiedy komenda zostaje wykonana zostaje wyemitowany sygnał commandfinished(int id, bool error) error jest true kiedy wykonanie nie powiodło się 37

Pobranie pliku przez FTP Żądania wykonania wszystkch komed mogą być wysłane za jednym razem Lub prosta maszyna stanów może być zbudowana void Downloader::start() { m_ftpstate = Connecting; m_ftp->connecttohost(host); void Downloader::ftpFinished(int, bool error) { switch(m_ftpstate) { case Connecting: m_ftpstate = LoggingIn; m_ftp->login(); break; case LoggingIn: m_ftpstate = Downloading; m_ftp->get(file, 0, QFtp::Ascii); break; case Downloading: result = m_ftp->readall(); m_ftpstate = Disconnecting; m_ftp->close(); break; case Disconnecting: m_ftpstate = Inactive; break; 38

Dostęp przez gniazda TCP Sockets UDP Sockets Gwarancja dostarczenia pakietu i zachowania kolejności pakietów Połączenie P2P Fire and forget P2P lub rozgłoszeniowy Wykorzystywany gdy priorytetem jest niezawodność połączenia Używany gdy priorytetem jest szybkość a nie niezawodność 40

Gniazda TCP W Qt są dwie klasy dla protokołu TCP QTcpSocket reprezentuje gniazdo TCP QTcpServer reprezentuje serwer (umożliwia nasłuch, akceptowanie połączeń) tworzy obiekt typu QTcpSocket dla każdego połączenia Dalej przedstawiono aplikację prostego serwera wykorzystującego napisy 41

Server TCP TCP Serwer nasłuchuje na porcie 55555 Przychodzące połączenie generuje sygnał newconnection Server::Server() : QObject(0) { m_tcpserver = new QTcpServer(this); connect(m_tcpserver, SIGNAL(newConnection()), this, SLOT(serverConnected())); m_tcpserver->listen(qhostaddress::any, 55555); 42

Serwer TCP Połączenie przychodzące jest odczytywane za pomocą metody nextpendingconnection void Server::serverConnected() { QTcpSocket *connection = m_tcpserver->nextpendingconnection(); connect(connection, SIGNAL(disconnected()), connection, SLOT(deleteLater())); QByteArray buffer;... connection->write(buffer); connection->disconnectfromhost(); 43

Serwer TCP Przykładowa odpowiedź serwera void Server::serverConnected() {... When using a QDataStream with a socket it is important to handle the size of the data manually. QByteArray buffer; QDataStream out(&buffer, QIODevice::WriteOnly); out.setversion(qdatastream::qt_4_6); QString greeting = QString("Hello! The time is %1").arg(QTime::currentTime().toString()); out << (quint16)0; out << greeting; out.device()->seek(0); out << (quint16)(buffer.size() - sizeof(quint16));... 44

Klient TCP Klasa QTcpSocket umożliwia nawiązanie połaczenia z serwerem Obsługa Sygnał readyread jest niezbędna, do uzyskania informacji o połączeniu, są również inne sygnały informujące np. o błędach Client::Client() : QObject(0) { m_tcpsocket = new QTcpSocket(this); connect(m_tcpsocket, SIGNAL(readyRead()), this, SLOT(readyToRead())); m_tcpsocket->connecttohost("localhost", 55555); 45

Klient TCP void Client::readyToRead() { QDataStream in(m_tcpsocket); in.setversion(qdatastream::qt_4_6); Using the QTcpSocket's buffer as our buffer if(m_tcpblocksize == 0) { if(m_tcpsocket->bytesavailable()<sizeof(quint16)) return; in >> m_tcpblocksize; if(m_tcpsocket->bytesavailable() < m_tcpblocksize) return; QString greeting; in >> greeting; dosomething(greeting); m_tcpblocksize = 0; 46

Drukowanie Do drukowania służy klasa Qprinter Najważniejsze metody: SetOutputFormat, SetOutputFileName SetPageMargins, setorientation Konfiguracja drukarki Okno konfiguracyjne drukarki zaimplementowane jest w klasie QprinterDialog Co można drukować Qpainter (umożliwia rysowanie elementów) QtextDocument (dokument posiadający interpretator richtext i html) 50

Tworzenie drukarki i Ustawienie parametrów wydruku Ustawienie drukarki QPrinter printer(qprinter::highresolution); QPrintDialog *dialog = new QPrintDialog(&printer, this); dialog->setwindowtitle(tr("tytul okna")); if (dialog->exec()!= QDialog::Accepted) return; Wydruk do PDF QPrinter printer; printer.setoutputformat(qprinter::pdfformat); printer.setoutputfilename("/foobar/nonwritable.pdf"); 51

Przygotowanie dokumentu Qpainter QPainter painter; if (! painter.begin(&printer)) { // failed to open file qwarning("failed to open file, is it writable?"); return 1; painter.drawtext(10, 10, "Test"); if (! printer.newpage()) { qwarning("failed in flushing page to disk, disk full?"); return 1; painter.drawtext(10, 10, "Test 2"); painter.end(); 52

Przygotowanie dokumentu QTextDocument Dla formatu html: Wspomaga większość elementów standardu (nagłowki, formatowanie czcionek, style css, div itp) QTextDocument doc; doc.sethtml(''tekst w html''); doc.print(&printer) Przykładowy kod generujący tabelkę: <table border="1"> <tr><th>header 1</th><th>Header 2</th></tr> <tr><td>row 1, cell 1</td><td>row 1, cell 2</td></tr> <tr><td>row 2, cell 1</td><td>row 2, cell 2</td></tr> </table> 53