Síťové programování Informační technologie - praxe SPŠE V úžlabině Jan Klepal, Mgr. Radka Müllerová Verze 2.

Slides:



Advertisements
Podobné prezentace
© 2000 VEMA počítače a projektování spol. s r. o..
Advertisements

SÍŤOVÉ PROTOKOLY.
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
HTTP server HTTP server 1 Jak to funguje?
SÍŤOVÉ SLUŽBY DNS SYSTÉM
1 Počítačové sítě Úvodní přednáška Cíl předmětu –seznámit se s principy datové komunikace –seznámit se s principy distribučních systémů –seznámit se s.
Fakulta elektrotechniky a informatiky
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Práce se soubory. Ukládání dat Textové soubory s jednoduchou strukturou (např..txt a.csv) textové soubory s vnitřní hierarchií (např..xml) Soubory binárního.
Analýza síťového provozu
, InforumJiří Šilha, LANius s.r.o. Nové možnosti komunikace knihovních systémů firmy LANius s.r.o. Client-server varianta systému CLAVIUS ®
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
SOAP Jan Růžička Institute of geoinformatics VSB-TU Ostrava 17.listopadu 15, Ostrava-Poruba,
Protokol TCP/IP a OSI model
Příkazový řádek CMD.
Aplikace VT v hospodářské praxi internetové technologie Ing. Roman Danel, Ph.D. VŠB – TU Ostrava.
Load Balancer RNDr. Václav Petříček Lukáš Hlůže Václav Nidrle Přemysl Volf Stanislav Živný
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Protokoly a adresy na internetu
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
Jazyk PHP Programovací jazyk PHP (Hypertext preprocessor) je skriptovací jazyk, který běží na straně serveru. KLIENT - SERVER Server posílá do vašeho počítače.
Ing. Jan Mittner Životní cyklus požadavku 2. Moduly 3. Pluginy 4. Jak řešit komponenty typu menu 5. atd. 2.
IB111 Programování a algoritmizace
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost Číslo projektu: CZ.1.07/1.5.00/ Číslo materiálu: VY_32_INOVACE_PSK-4-09.
Dynamické dokumenty na straně serveru Informatika pro ekonomy II přednáška 8.
Číslo šablony: III/2 VY_32_INOVACE_P4_1.9 Tematická oblast: Hardware, software a informační sítě Porty a rozhraní Typ: DUM - kombinovaný Předmět: ICT Ročník:
Shrnutí A – Principy datové komunikace B – TCP/IP 1.
Firewall.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Application Layer Functionality and Protocols Network Fundamentals – Chapter 3.
organizační struktury Implementace EOS III na Olomouckém kraji Pro:Krajský rok informatiky 2005 Autor:Jan Kadlec Datum:
1 I NTERNETOVÁ INFRASTRUKTURA. H ISTORIE SÍTĚ I NTERNET RAND Corporation – rok 1964 Síť nebude mít žádnou centrální složku Síť bude od začátku navrhována.
Autor:Ing. Bronislav Sedláček Předmět/vzdělávací oblast:Telekomunikace Tematická oblast:Datová komunikace Téma:Základní přehled síťové architektury Ročník:4.
POČÍTAČOVÉ SÍTĚ ADRESA. Identifikace v síti  IP adresa - je jednoznačná identifikace konkrétního zařízení (typicky počítače) v prostředí sítě (Internetu).
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost Číslo projektu: CZ.1.07/1.5.00/ Číslo materiálu: VY_32_INOVACE_PSK-4-16.
A4B33OSS (J. Lažanský) verze: Podzim 2013 Základní IP protokoly 1 Obsah Téma 10 – Síťové IP protokoly a API 1.Nezabezpečená služba UDP 2.Zabezpečený přenos.
CZ.1.07/1.4.00/ VY_32_INOVACE_166_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
Základy informatiky část 6
Úvod do PHP IZI 228.
Vzdálené počítačové sítě a programování v prostředí Windows Okruhy ke zkoušce z předmětu: Ing. Zdeněk Votruba LVALVA.
Import záznamů diplomových prací nové řešení Antonín Vaishar, SUAleph, 26. –
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
Seminář 12 Obsah cvičení Transportní služby Utilita nestat
Webové služby pro komunikaci s informačním systémem eQuip Martin Širajch.
Transportní úroveň Úvod do počítačových sítí Lekce 10 Ing. Jiří Ledvina, CSc.
A4B33OSS (J. Lažanský) verze: Podzim 2010 Použití počítačových sítí 1 Obsah Téma 12 – Použití počítačových sítí 1.Zabezpečený přenos TCP/IP 2.Principy.
Internetové technologie Informatika pro ekonomy přednáška 7.
Principy fungování sítě Název školyGymnázium Zlín - Lesní čtvrť Číslo projektuCZ.1.07/1.5.00/ Název projektuRozvoj žákovských.
Web services. Co jsou webservices Součinná spolupráce počítačů v síti Technologie pro vzdálené volání procedur (RPC) Nezávislá na platformě Data v XML.
Vývoj informačních systémů Námět na praktické cvičení Klient – Server (nepovinné)
Operační systémy Počítačové sítě v OS © Milan Keršláger Obsah:
Virtualizace ● IP forwarding ● IP tunneling ● Virtuální síť.
Algoritmizace a programování Soubory. Oč jde? Vytvoření externího souboru Vytvoření externího souboru Tento soubor může být: Tento soubor může být: Textový.
Unix a Internet 9. Samba © Milan Keršlágerhttp:// Obsah: ●
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
FTP-SSL FTP-SSL Martin Dušek Martin Fúsek Josef Vlček.
Transportní vrstva v TCP/IP Dvořáčková, Kudelásková, Kozlová.
Shrnutí A – Principy datové komunikace B – TCP/IP 1.
Moduly.
školák Piš a sdílej své sešity, jednoduše, rychle, v pohodě.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně
Seminář 11 DHCP + HTTP + IPTABLES
Y36PJC Programování v jazyce C/C++
Protokol HTTP (Hypertext Transfer Protocol)
Číslo projektu OP VK Název projektu Moderní škola Název školy
UNIX 13. Síťová komunikace
Úvod do počítačových sítí
C# přehled vlastností.
Přednášky z Distribuovaných systémů
Transkript prezentace:

Síťové programování Informační technologie - praxe SPŠE V úžlabině Jan Klepal, Mgr. Radka Müllerová Verze 2

Obsah Knihovny protokolů httplib httplib smtplib smtplibSoketSelectObjektyThreading

Knihovny protokolů Připravené knihovny pro komunikaci určitým protokolem Vhodné pro hromadné zpracování nebo automatizaci komunikace (dohledové systémy, exportní rozhraní, B2B atd.) Velice jednoduchá implementace bez hlubší znalosti komunikačního protokolu (volání funkcí/metod) Nejčastěji používané knihovny v pythonu httplib – HTTP protokol httplib – HTTP protokol ftplib – FTP protokol ftplib – FTP protokol smtplib – SMTP protokol smtplib – SMTP protokol xmlrpclib – XML RPC xmlrpclib – XML RPC

httplib import httplib conn = httplib.HTTPConnection(' conn.request('GET', '/ urz.txt') response = conn.getresponse() if response.status == 200: for line in response.read().split('\n'): data = line.split('|') if len(data) == 5 and data[3] == 'EUR': print "Kurz EUR: %s" % data[4] else: print "Chyba komunikace: %s" % response.reason conn.close()

smtplib import smtplib kolegove = s = smtplib.connect(‘smtp.uzlabina.cz’) msg = “““ From: To: %s Subject: Pozvanka na poradu Dobrý den, porada bude příští týden v úterý od 10:00 ve sborovně. Jan Klepal ””” for kolega in kolegove: kolega, msg % kolega) s.quit()

Objekty Objekt obsahuje data i funkce dohromady Třída (class) definuje chování objektu atributy – proměnné atributy – proměnné metody – funkce metody – funkce Samotné objekty jsou instance tříd Dědičnost (inheritence) objektů umožňuje, aby jedna třída byla rozšířena atributy a metodami objektu jiného

Objekty import time class Clovek: def __init__(self): self.narozen = time.time() self.jmeno = None def pokrti(self, jmeno): self.jmeno = jmeno def vek(self): print "%s je stary %i sekund" % (self.jmeno, int(time.time() - self.narozen)) lemming1 = Clovek() lemming2 = Clovek() lemming1.pokrti(„Pepa“) lemming1.vek() lemming1.jmeno definice objektu člověk (třída) konstruktor metoda atribut Vytvoření instance objektu člověk volání metody pokřti přístup k atributu jmeno

Socket Socket umožňuje jednoduše implementovat komunikaci pomocí IP protokolu Většina OS využívá Berkeley Sockets API Socket umožňuje operačnímu systému přiřadit IP komunikační kanál k určité aplikaci pomocí: Protokolu (TCP, UDP, případně přímo IP) Protokolu (TCP, UDP, případně přímo IP) Lokální IP adresy Lokální IP adresy Lokálního portu Lokálního portu Vzdálené IP adresy Vzdálené IP adresy Vzdáleného portu Vzdáleného portu V socketové komunikaci se rozlišuje: Server – očekává spojení na určitém portu Server – očekává spojení na určitém portu Client – pčipojuje se na port, na kterém „poslouchá“ server Client – pčipojuje se na port, na kterém „poslouchá“ server

Socket - server import socket, time HOST = '' PORT = s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) while 1: conn, addr = s.accept() print 'Connection from', addr conn.send(str(time.localtime()) + '\r\n') conn.close()

Socket - klient import socket HOST = ' ' PORT = s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) data = s.recv(1024) s.close() print 'Právě je', repr(data)

Select Socketové funkce send() a recv() jsou blokující. Pro detekci, zda je soket připraven odesílat resp. přijímat data se používá funkce select() rd, wr, er = select(readers, writers, errors, timeout) rd, wr, er = select(readers, writers, errors, timeout) readers – list socketů pro test připravenosti na čtení writers – list socketů pro test připravenosti na zápis errors – list socketů pro test zda jsou v chybném stavu timeout – počet sekund pro test připravenosti rd – list připravených socketů pro čtení wr – list připravených socketů pro zápis er – list socketů v chybném stavu

Select - příklad import socket, select HOST = '' PORT = s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) while 1: conn, addr = s.accept() print 'Connection from', addr conn.send('Login: ') rd, wr, er = select.select([conn], [], [], 5) if rd: user = conn.recv(1024) print 'User: ', user conn.send('OK\r\n') else: print 'Timeout' conn.send('Sorry... timeout\r\n') conn.close()

Threading Threading umožňuje, aby část programu byla vykonávána souběžně s během hlavního cyklu programu Jednotlivé thready mohou sdílet data (proměnné) i funkce/metody Při použití threadingu se stává běh programu asynchronní Pro synchronizaci přístupu k souborům, síťovým spojením a paměti (proměnným) se používají semafory nebo zámky (lock) Pro synchronizaci přístupu k souborům, síťovým spojením a paměti (proměnným) se používají semafory nebo zámky (lock) Bez použití zámků není např. garantováno, že během čtení z Bez použití zámků není např. garantováno, že během čtení z Threading je efektivnější než forking (zálěží na implementaci v programovacím jazyku, OS a případné HW podpoře)

Threading - příklad import threading, time class Stopky(threading.Thread): def __init__(self, nazev, cas): self.nazev = nazev self.cas = cas threading.Thread.__init__(self) def run(self): while self.cas > 0: print self.nazev, self.cas self.cas -= 1 time.sleep(1) print "Konec threadu", self.nazev s1 = Stopky('stopky A', 7) s2 = Stopky('stopky B', 4) s1.start() s2.start() time.sleep(10) print "Konec hlavniho programu"