Jak naprogramovat internetovou komunikaci?

Rozměr: px
Začít zobrazení ze stránky:

Download "Jak naprogramovat internetovou komunikaci?"

Transkript

1 Jak naprogramovat internetovou komunikaci?

2 Co nám nabízejí některé programátorské nástroje? nižší úroveň programování programování pomocí tzv. socketů UNIX, Linux, Windows, Python, JAVA vyšší úroveň zapouzdření služeb do tříd v rámci objektově orientovaného programování JAVA,.NET (Microsoft), Python

3 Rozhraní socketů Je sice nejstarší, ale stále se používá

4 Rozhraní socket BSD (Berkley Socket Distribution) jde o standardní softwarové rozhraní pro zasílání dat pomocí rodiny IP protokolů vymyšleno a poprvé implementováno na univerzitě v Berkley do OS UNIX umožňuje programátorům používat TCP/IP, resp. UDP, obdobným způsobem, jako se pracuje se soubory

5 Charakteristika poprvé implementováno v jazyce C implementace do operačních systémů UNIX (Linux) - knihovna socket.h MS Windows knihovna winsock.h programátorské funkce jsou navrženy tak, aby bylo snadné naprogramovat aplikaci klient -server

6 Princip práce se soubory v jazyce C nejprve se soubor otevře; informace o otevřeném souboru se uloží do speciální datové struktury OS (file descriptor) zde proměnná f (ukazatel na typ FILE*) f = fopen( text.doc, rb ) jméno souboru mód otevření r čtení, w zápis b binární mód

7 ze souboru čteme data pomocí funkce fread( ), zapisujeme data pomocí funkce fwrite( ) zde v ukázce např. do pole data přečteme 10 bloků po 1 bytu ze souboru f, který jsme předtím otevřeli fread(data,1,10,f) po skončení práce uzavřeme soubor voláním funkce fclose( ) fclose(f)

8 návrháři přenesli tento jednoduchý princip do programování komunikace sítí Je to ale přece o trochu složitější programujeme aplikaci klient/server server čeká na příchod požadavku klienta TCP je orientované na spojení funkce navazující spojení musíme znát mnoho údajů IP adresu vlastní a partnera, porty

9 Co je to socket? učeně koncový komunikační uzel (endpoint) méně učeně datová struktura (data), nesoucí informaci o stavu síťového spojení; musíme jej vytvořit voláním speciální funkce podobně jako fopen pro otevření souboru pak komunikujeme pomocí funkcí write() a read(), jejichž parametr je otevřený socket (kam se posílají data)

10 Základní funkce rozhraní socket() vytvoří strukturu socket používá jej klient i server argumentem je rodina a typ protokolu (TCP,UDP), typ služby (spojovaná/nespojovaná) vrací identifikaci vytvořeného socketu close() dealokuje (zavírá) socket

11 Funkce používané serverem bind() připojí do socketu identifikaci lokálního uzlu, tj. moji IP adresu a port listen() spojovaná služba pasivuje socket, tj. nastaví jej do stavu čekání na příchod požadavků klienta (přes rezervovaný port) accept() - spojovaná služba přijde-li požadavek, accept vytvoří nový socket, pomocí něhož server komunikuje s klientem; původní socket je nadále v pasivním stavu a očekává nový požadavek (na rezerv. portu)

12 Funkce používané klientem connect() - spojovaná služba vytvoří spojení ke vzdálenému serveru v případě TCP 3-fázový potvrzovací protokol parametrem je adresa a port vzdáleného serveru po vytvoření spojení lze zahájit výměnu dat se serverem

13 Funkce přenosu dat read(), write() - spojovaná služba recvfrom(), recvmsg sendto(), sendmsg() čtení a zápis dat do socketu recvfrom zaznamená i příjemce

14 Spojované služby Klient socket connect write read close Server socket bind listen accept read write close

15 Nespojované služby Klient socket connect write Server socket bind recvfrom recvmsg read close sendto sendmsg close

16 Konkurentní TCP server Server (proces) Vlákno (syn) Vlákno (syn) Aplikace rezervovaný port individuální sockety a porty Operační systém

17 Ukázky, jak se to programuje 1. Vytvoření socketu s=socket(af_inet,sock_stream,tcp) rodina protokolů spojovaná služba protokol TCP

18 Ukázky, jak se to programuje 2. Bind server: vložení vlastní IP adresy a portu k socketu naplním datovou strukturu pro adresu a port addr.sin_family = AF_INET; port, kde poslouchám addr.sin_port = htons(3434); addr.sin_addr.s_un.s_addr = INADDR_ANY; bind(s,(sockaddr*)&addr,sizeof(addr)) moje adresa

19 Ukázky, jak se to programuje 3. listen server: čeká na příchod požadavku listen (s,somaxcon); socket max. délka fronty

20 Ukázky, jak se to programuje 4. listen server: po příchodu požadavku vytvoří nový socket pomocí accept a vytvoří nový proces, který dále komunikuje nový socket //vytvoření nového procesu sx=accept (s, adresa,délka); read(sx,data,vel); write(sx,data,vel);

21 algoritmičtěji listen (s,somaxcon); while (není_konec) { SOCKET sx = accept(s,adr,delka); fork() //vytvoření syn. procesu { read(s,data,vel); write(s,data,vel); } }

22 k dispozici je mnoho pomocných funkcí pro získání informací o počítači: gethostbyname() GetAddressByName - ve winsock2.h čtení a změna parametrů socketu getsockopt(), setsockopt() převodní funkce getservbyport() zjistí informace o serveru, např. voláme z řetězcem FTP, vrátí port 21

23 Jednoduchý příklad klient, který pošle serveru v TCP paketu jméno souboru server pošle obsah souboru v TCP paketu první slabika v paketu odpovědi signalizuje hodnotou -1, že soubor se nepodařilo otevřít příklad je značně zjednodušen předpokládá se, že soubor se vejde do jediného paketu o max. 100 bytech

24 Klient int Init_DLL(WORD version) { WSADATA wsadata; return WSAStartup(version, &wsadata); } specialita WIN nutnost inicializovat winsock.dll SOCKET Create_tcp_socket(void) { SOCKET s; s = socket(pf_inet,sock_stream,ipproto_tcp); return s; } int Set_sock_rcv_timeout(SOCKET s, int milisec) { return setsockopt(s, SOL_SOCKET,SO_RCVTIMEO,(char *)&milisec,sizeof(milisec)); }

25 if ((s=create_tcp_socket())==invalid_socket) { printf("nepodarilo se vytvorit socket."); getchar(); return 2; } err=set_sock_rcv_timeout(s,10000); ZeroMemory((void*)&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(4242); addr.sin_addr.s_un.s_addr = inet_addr(" "); printf("spojuji se se serverem...\n"); if (connect(s,(sockaddr*)&addr,sizeof(addr))!= 0) { printf("spojeni se nepodarilo navazat...\n"); closesocket(s); return 2; }

26 send(s,"text.txt",9,0); printf("cekam na data\n"); int prijato; addr_len = sizeof(addr); if ((prijato=recv(s,paket,100,0))>0) { if (paket[0]==-1) { printf("server soubor nenalezl"); break; } else { for(int i=1;i<prijato;i++) putchar(paket[i]); } } closesocket(s); WSACleanup();

27 Server ZeroMemory((void*)&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(4242); addr.sin_addr.s_un.s_addr = INADDR_ANY; if (bind(s,(sockaddr FAR *)&addr,sizeof(addr))!=0) { printf("nepodarilo se provest bind"); closesocket(s); WSACleanup(); return 2; }

28 printf("pasivuji socket...\n"); if(listen(s,10)==socket_error) { printf("nepodarilo se vytvorit frontu"); closesocket(s); WSACleanup(); return 2; } addr_len=sizeof(addr_from); novy_s = accept(s,(sockaddr*)&addr_from,&addr_len); printf("prisel pozadavek...\n"); recv(novy_s,jmeno,256,0); printf("pozadavek na soubor %s\n",jmeno); // načtení souboru send(novy_s,packet,celkem_precteno+1,0);

29 Princip socketů je stále využíván i v nových programátorských prostředcích!

30 Programování pomocí OOP (objektově orientovaného programování)

31 JAVA sockety, třídy pro práci s IP adresou atd. Microsoft MFC objektové prostředí pro tvorbu aplikací ve Windows.NET pro síťové poskytuje pouze zapouzdřený socket jako CSocket definovány třídy na vyšší úrovni (TCPClient)

32 Co je OOP? počátky programování strukturované programování posloupnost operací (příkazů) nad relativně jednoduchými daty (matematické výpočty) svět se skládá z objektů, které mají určité vlastnosti; objekty mají mezi sebou nějaké vztahy, něco se s nimi děje

33 v OOP základní datový prvek objekt sdružuje (zapouzdřuje) data (tzv. atributy) a funkcionalitu (operace nad daty metody) definice podoby objektu se nazývá třída (class) termínem třída se také někdy označuje souhrn objektů stejných vlastností některé objektové programovací jazyky: C++, Java, SmallTalk, Delphi (objektový Pascal)

34 Příklad (v jazyce C++): // definice struktury adresa typedef struct { char Ulice[20]; //typ retezec int Cislo; char Mesto[20]; } Adresa;

35 // definice třídy osoba class Osoba { char Jmeno[20]; //atributy char Prijmeni[30]; char RC[12]; Adresa adresa; int Pocet_deti; Osoba* deti[5]; int Ma_narozeniny(); void Pridej_dite(Osoba *dite); Osoba(); }; Konstruktor Atribut strukturovaného datového typu Odkaz (ukazatel) na jiný objekt (zde pole 5 ukazatelů) Metody

36 konstruktor inicializuje objekt Osoba::Osoba { Pocet_deti = 0; } příklad definice metody: void Osoba::Pridej_dite(Osoba* dite) { deti[pocet_deti] = dite; Pocet_deti = Pocet_deti + 1; }

37 program obsahuje deklaraci objektů // zde deklarace dvou objektů typu osoba, // konstruktor je automaticky vyvolán Osoba zamest, dite; // staticky Osoba *sef = new Osoba(); //dynamicky kód - operace s atributy, volání metod //POZOR, následující operace přiřazení řetězců nejsou v jazyku C správně, zápis je jen pro ilustraci

38 zamest.jmeno = "Josef"; zamest.prijmeni = "Novák"; zamest.adresa.ulice = "Hradební"; dite.jmeno = "Markéta"; dite.prijmeni = "Nováková"; zamest.pridej_dite(&dite); zamest.ma_narozeniny(); atd.

39 V OOP se využívají některé další techniky: dědičnost nově definovaná třída dědí atributy a metody po předcích; metoda může být předefinována řízení přístupu k atributům a metodám private proměnnou nebo metodu nelze použít mimo objekt přetěžování např. více metod se stejným jménem a různým kódem lišící se parametry strukturované ošetření chyb výjimky při chybě se vyhodí výjimka; výjimky se ošetřují v kódu na jednom místě (na dané úrovni)

40 Princip používání výjimek try { kód if (chyba) throw Vyjimka_sit } catch Vyjimka_sit { reakce na chyby } obsloužení vyjímky vznik výjimky

41 JAVA

42 Síťová komunikace v JAVě všechny třídy týkající se sítě jsou soustředěny v knihovně (balíčku) java.net tříd a přidružených definicí je mnoho: asi 36 tříd týkajících se komunikace 12 souvisejících výjimek 6 rozhraní (interface) většina původní složité komunikace pomocí socketů je zjednodušena díky proudům

43 Balík java.net obsahuje především: třídu pro adresaci InetAddress, URL třídy pro TCP komunikaci URLConnection, Socket, ServerSocket třídy pro UDP komunikaci DatagramPacket, DatagramSocket výjimky ProtocolException, SocketException, ConnectException, PortUnreachableException, UnknownHostException,

44 Třída InetAddress objekty nesou IP adresu, tj. 32 resp. 128 bitové číslo bez znaménka implementuje IPv4 i IPv6 má potomky Inet4Address a Inet6Address adresa může být typu unicast nebo multicast tj. paket se má dodat na jedno či více míst nemá přímo přístupné konstruktory, objekty jsou vraceny statickými funkcemi

45 Metody InetAddress getbyname( String host ) adresa hostitele dle DNS. InetAddress[ ] getallbyname( String host ) adresy hostitele dle DNS. InetAddress getbyaddress ( byte[ ] addr ) vytvoří objekt podle adresy zapsané v normálním poli InetAddress getlocalhost( ) adresa lokálního hostitele, tj. moje

46 byte [ ] getaddress( ) adresa po bytech. String gethostaddress( ) textová reprezentace adresy hostitele. String gethostname( ) jméno hostitele

47 Příklad: InetAddress a=inetaddress.getbyname("www.seznam.cz"); byte[ ] b=a.getaddress( ); // rozklad na slabiky System.out.println( b[0] + "." +b[1] +"."+ b[2] +"."+ b[3] );

48 Třída URL nese informace o lokalitě zdroje přetížené konstruktory umožňují vytvořit URL jednak pomocí plné specifikace řetězem, jednak pomocí jednotlivých částí URL při nesprávném zadání vyhodí výjimku MalformedURLException.

49 Metody getprotocol( ), gethost( ), getfile( ),... umožňují vybírat části URL. URLConnection openconnection( ) vrací objekt typu URLConnection, který reprezentuje spojení (např. komunikaci pomocí http) se vzdáleným objektem, identifikovaným daným URL

50 Třída URLConnection abstraktní třída reprezentující komunikační kanál mezi aplikací a URL třídy (potomci) HttpURLConnection a HttpsURLConnection podporují přenos HTML stránek protokolem http parametrem konstruktoru je URL vzdáleného počítače spojení se navazuje metodou connect vlastní přenos dat se realizuje pomocí proudů (Stream)

51 Ukázka: URL url = new URL("http://www.seznam.cz"); URLConnection connection = url.openconnection(); connection.connect(); InputStream is = connection.getinputstream();

52 Třída Socket implementuje klientský socket Příklady konstruktorů Socket() vytvoří nespojený socket Socket(InetAdress host, int port) vytvoří socket a spojí se (!) se vzdáleným počítačem Socket(String host, int port)

53 bind(), connect() metody známé z rozhraní BSD socket, (použití při vytváření nespojeného socketu) InputStream getinputstream() OutputStream getoutputstream() vrací vstupní a výstupní proudy, které slouží pro zasílání dat v paketech Příklad dalších metod: getlocaladdress(), isconnected()

54 Příklad klienta jednoduchý www klient try { Socket sock2 = new Socket("www.linuxsoft.cz", 80); BufferedReader br = new BufferedReader( new InputStreamReader(sock2.getInputStream())); BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(sock2.getOutputStream())); bw.write(request); // zapíšeme http paket bw.flush(); String line = ""; while (line!= null) { line = br.readline(); if (line!= null) System.out.println(line); } sock2.close(); }

55 Třída ServerSocket implementuje funkce koncového místa TCP spojení na straně serveru funkce souvisí jen s navazováním spojení vlastní přenos dat pomocí TCP je realizován třídou (Socket)

56 Metody přetížené konstruktory ServerSocket povinným parametrem je port, na který je socket vázán dále je možné specifikovat délku fronty požadavků a omezit lokální adresu IP (má-li počítač více IP rozhraní) InetAddress getinetaddress() vrací lokální IP adresu, na kterou je socket vázán int getlocalport() vrací lokální port

57 Socket accept() throws IOException čeká na příchozí volání a vrací instanci třídy Socket implaccept(socket s) throw IOException umožňuje v potomcích implementovat vlastní navázání spojení, např. pomocí SSL setsotimeout(int tout), getsotimeout() nastavení a zjištění časových limitů close() uzavření socketu

58 Příklad klienta - ping String s = args[1] + "\n"; byte [] message = s.getbytes(); int msglen = args[1].length(); Socket data = null; try { data = new Socket(atgs[0],port); } catch (IOException e) { System.out.println(e);System.exit(3); }

59 try { OutputStream out = data.getoutputstream(); BufferedReader in = new BufferedReader( new InputStreamReader(data.getOutputStream())); out.write(message); out.flush(); String response = in.readline(); System.out.println("Prislo: " + response); in.close(); out.close(); } catch (IOException e) { System.out.println(e); } finaly { data.close(); }

60 Příklad serveru - ping Socket control = null; try { control = new ServerSocket(port); } catch (IOException e) { System.out.println(e);System.exit(1); } Socket data = null; System.out.println("Cekam na prichod pozadavku\n");

61 try { data = control.accept(); } catch (IOException e) { System.out.println(e); break; } try { OutputStream out = data.getoutputstream(); BufferedReader in = new BufferedReader( new InputStreamReader(data.getOutputStream())); String inputline = in.readline(); inputline = inputline + "\n"; out.write(inputline.getbytes()); out.flush(); in.close(); out.close(); } catch { } finaly { data.close(); }

62 Třída DatagramPacket třída připravuje datagramy UDP k odeslání a příjmu DatagramPacket(byte [] ibuf, int ilen) vytvoří paket určený pro příjem (prázdný paket) DatagramPacket(byte [] ibuf, int ilen, InetAddress iaddr, int port) připraví paket určený k vysílání

63 getlength(), getdata(), getport(), getaddress() podporují analýzu paketu význam funkcí je zřejmý

64 Třída DatagramSocket představuje zapouzdřený socket pro odeslání a příjem UDP datagramů Konstruktory: DatagramSocket() DatagramSocket(int port) DatagramSocket(int port, InetAddress a) socket spojený s danou lokální adresou

65 send (DatagramPacket p) receive (DatagramPacket p) odeslání a příjem UDP paketu close() uzavření paketu Poznámka: třída MulticastSocket umožňuje posílat přes sockety IGMP pakety

66 Microsoft.NET

67 Prostředí.NET generace systému vývoje aplikací pro operační systémy Windows založeném na řízeném běhovém prostředí založeno na OOP je realizováno pomocí velkého počtu speciálních tříd podporuje více programovacích jazyků C++, C#, J++, Visual Basic

68 Třídy IPEndPoint TCP/UDP komunikace práce s IP adresou a portem TcpClient, TcpListener spojovaná služba UdpClient nespojovaná služba

69 IPEndPoint nese informaci o adrese a portu atributy Address, AdressFamily, Port zajímavé metody ToString převede adresu na řetězec Create vytvoří objekt podle socketu

70 TCPClient zapouzdřuje kompletní TCP komunikaci pro stranu klienta zajímavé atributy ReceiveBufferSize, ReceiveTimeout, SendBufferSize zajímavé metody Connect(IPEndpoint endpoint) spojí se se serverem na adrese dané parametrem endpoint

71 NetworkStream GetStream() vrátí objekt typu Stream, pomocí jehož metod zasíláme/přijímáme data; zasílání dat se neprovádí přímo pomocí metod této třídy Close() uzavření spojení

72 TCPListener zapouzdřuje kompletní TCP komunikaci pro stranu serveru zajímavé atributy LocalEndpoint informace o mé adrese a portu zajímavé metody Start() začíná poslouchat na portu, ekvivalentní funkci listen()

73 Socket AcceptSocket(), TcpClient AcceptTcpClient() vrací nový socket nebo objekt typu klient, pomocí kterého se zajišťuje další komunikace NetworkStream GetStream() bool Pending() dotaz, zda není ve frontě nevyřízený požadavek na spojení

74 Ukázka v C# //vytvorime instanci posluchace pro urcity //TCP port TcpListener listener = new TcpListener(IPAddress.Loopback, 2000); TcpClient client = null; try { //zacneme naslouchani na urcenem portu listener.start(); //pockame na pripojeni nejakeho klienta client = listener.accepttcpclient();

75 //po pripojeni si vyzvedneme proud a nacteme z nej data Stream clientstream = client.getstream(); StreamReader reader = new StreamReader(clientStream); string content = reader.readtoend(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); }

76 UDPClient zapouzdřuje kompletní UDP komunikaci; využívají jej obě strany zajímavé metody Send(byte[ ] data, int velikost) zašle druhému počítači UDP paket byte[ ] Receive(ref IPEndPoint remoteep ) čeká na příchod a přijme UDP paket data vrátí v poli bytů vedlejší efekt je adresa, odkud paket přišel

77 Connect(IPEndPoind remoteep) do vlastních datových struktur uloží adresu a port cíle (spojení se ale nerealizuje, je to UDP!)

78 Přístup k www Třída WebClient implementuje kompletní www klient s možností stahování dat, souborů umožňuje download a upload ve formě souborů z/na server download a upload dat (tj. do pole) přistupovat k datům na serveru přímo jako k souboru

79 WebClient zajímavé atributy BaseAddress URI adresa serveru zajímavé metody DownloadData, DownloadFile UploadData,UploadFile OpenRead, OpenWrite otevře stream ke vzdálenému souboru

80 Ukázka v C# WebClient client = new WebClient(); Console.Write("Zadejte URI (napr. ) : "); //nacteme URI string uri = Console.ReadLine(); Console.Write("Zadejte nazev stazeneho souboru (napr. C:/new.txt) :"); //nacteme kam se ma soubor ulozit string filename = Console.ReadLine();

81 try { //stahneme soubor client.downloadfile(uri, filename); Console.WriteLine("Soubor byl stazen."); } catch(webexception ex) { Console.WriteLine("Pri stahovani souboru } doslo k vyjimce : {0}", ex.tostring());

82 Další třídy pro práci v síti Uri práce s řetězcem URI (porovnání, parsing) IPAddress Dns GetHostEntry, Resolve WebRequest, WebResponse podle URI umí posílat/přijímat protokoly HTTP, HTTPS, FILE, FTP

83 Co na závěr podporu IP sítí mají i jiné jazyky, např. Python sockety HTTP, FTP, SMTP

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33 Programování v C# Síťová komunikace Petr Vaněček 1 / 33 Obsah přednášky Jednoduchá komunikace Sockety 2 / 33 System.Net Namespace poskytuje jednoduché rozhraní ke standardním protokolům Třída WebClient

Více

Úvod Virtuální kanál TCP Datagramová služba UDP URL TCP, UDP, URL. Fakulta elektrotechnická

Úvod Virtuální kanál TCP Datagramová služba UDP URL TCP, UDP, URL. Fakulta elektrotechnická TCP, UDP, Katedra počítačů Fakulta elektrotechnická 10. května 2007 Přehled 1 2 TCP a sokety obecně TCP klient TCP server 3 UDP klient UDP server 4 Sít ová spojení nad sít ovou vrstvou (typicky protokol

Více

Se vznikem internetu se můžeme na síťovou komunikaci v Javě (komunikace mezi více JVM) dívat dvěma pohledy-způsoby:

Se vznikem internetu se můžeme na síťovou komunikaci v Javě (komunikace mezi více JVM) dívat dvěma pohledy-způsoby: 4. blok Java síťová Studijní cíl V tomto bloku studenti získají základní dovednosti při práci s Javou v síťovém prostředí. V úvodu budou zkoumány třídy pro práci se síťovými adresami InetAddress, InetSocketAddress

Více

Komunikační sokety. teorie a implementace v C#, C++ a Javě. Aleš Keprt Katedra informatiky UP duben 2006, revize květen 2007

Komunikační sokety. teorie a implementace v C#, C++ a Javě. Aleš Keprt Katedra informatiky UP duben 2006, revize květen 2007 Komunikační sokety teorie a implementace v C#, C++ a Javě Aleš Keprt Katedra informatiky UP duben 2006, revize květen 2007 Hrajeme proti sobě ale jak na to? Komunikace mezi procesy na jednom počítači Roury

Více

Práce se soubory v Javě

Práce se soubory v Javě Práce se soubory v Javě Cílem kapitoly je naučit pracovat se soubory a adresáři v Javě. Na jednoduchých příkladech ukázat procházení adresáře, čtení z textového souboru a zápis do textového souboru. Klíčové

Více

Soketové připojení Klient InetAddress getbyname() UnknowHostException SecurityException Socket getinputstream() getoutputstream() IOException Server

Soketové připojení Klient InetAddress getbyname() UnknowHostException SecurityException Socket getinputstream() getoutputstream() IOException Server Soketové připojení Při socketovém připojení spolu komunikují dvě nezávislé JVM pomocí streamů odpovídajících typů. Po síti můžete posílat textové i binární informace, je možno posílat i objekty, které

Více

Rozhraní Sockets Java a C (BSD)

Rozhraní Sockets Java a C (BSD) Rozhraní Sockets Java a C (BSD) Počítačové sítě 3. cvičení Seznámení s Virtlabem Aktivní úlohy odkazy na konzoly rezervovaných zařízení Pozor na kvóty Používat záznam, zálohovat si konfiguraci před ukončením

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Site - Zapich. Varianta 1

Site - Zapich. Varianta 1 Site - Zapich Varianta 1 1. Koncovy uzel PC1 overuje pres PING konektivitu uzlu PC3. Jaky bude obsah ethernetoveho ramce nesouciho ICMP zpravu od PC1 na portu Fa0/3 SW1? SRC address: MAC_PC1 DST address:

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

1. Téma 12 - Textové soubory a výjimky

1. Téma 12 - Textové soubory a výjimky 1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se

Více

Ošetřování chyb v programech

Ošetřování chyb v programech Ošetřování chyb v programech Úvod chyba v programu = normální záležitost typy chyb: 1) programátorská chyba při návrhu každých 10 000 řádek 1 chyba lze jen omezeně ošetřit (před pádem aplikace nabídnout

Více

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly. 7. Aplikační vrstva Studijní cíl Představíme si funkci aplikační vrstvy a jednotlivé protokoly. Doba nutná k nastudování 2 hodiny Aplikační vrstva Účelem aplikační vrstvy je poskytnout aplikačním procesům

Více

Práce se sítí System.Net

Práce se sítí System.Net Práce se sítí SystemNet 738 Zasíláme textovou zprávu prostřednictvím protokolu UDP Protokol UDP je nespojový protokol, jehož zprávy jsou posílány datagramy Díky své nespojovosti a poměrné jednoduchosti

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Remote Method Invocation RMI

Remote Method Invocation RMI Remote Method Invocation RMI Java TM Remote Method Invocation (RMI) umožňuje objektu na jedné Java Virtual Mashine(JVM) jednoduše spustit metodu jiného objektu na vzdálené JVM. Při volání vzdálené metody

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

Vytváření a použití knihoven tříd

Vytváření a použití knihoven tříd Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více

Přednáška 3. Opakovače,směrovače, mosty a síťové brány

Přednáška 3. Opakovače,směrovače, mosty a síťové brány Přednáška 3 Opakovače,směrovače, mosty a síťové brány Server a Client Server je obecné označení pro proces nebo systém, který poskytuje nějakou službu. Služba je obvykle realizována některým aplikačním

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ Vstupy a výstupy pokračování Kódování textů Texty (řetězce nebo znaky) v jazyce C# jsou v paměti uloženy v kódování označovaném běžně Unicode (kódová stránka 1200).

Více

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací

Více

Z. Kotala, P. Toman: Java ( Obsah )

Z. Kotala, P. Toman: Java ( Obsah ) Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například

Více

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39 Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy

Více

Více o konstruktorech a destruktorech

Více o konstruktorech a destruktorech Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

Úvod do informatiky 5)

Úvod do informatiky 5) PŘEHLED PŘEDNÁŠKY Internet Protokol a služba Jmenná služba (DNS) URL adresa Elektronická pošta Přenos souborů (FTP) World Wide Web (WWW) Téměř zapomenuté služby 1 INTERNET 2 PROTOKOL A SLUŽBA Protokol

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

JAK ČÍST TUTO PREZENTACI

JAK ČÍST TUTO PREZENTACI PŘENOSOVÉ METODY V IP SÍTÍCH, S DŮRAZEM NA BEZPEČNOSTNÍ TECHNOLOGIE David Prachař, ABBAS a.s. JAK ČÍST TUTO PREZENTACI UŽIVATEL TECHNIK SPECIALISTA VÝZNAM POUŽÍVANÝCH TERMÍNŮ TERMÍN SWITCH ROUTER OSI

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

Komunikace s automaty MICROPEL. správa systému lokální a vzdálený přístup do systému vizualizace, umístění souborů vizualizace

Komunikace s automaty MICROPEL. správa systému lokální a vzdálený přístup do systému vizualizace, umístění souborů vizualizace Komunikace s automaty MICROPEL správa systému lokální a vzdálený přístup do systému vizualizace, umístění souborů vizualizace MICROPEL 02/2014 Základní správu automatu tvoří činnosti: Nastavení základních

Více

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP Počítačové sítě Lekce 4: Síťová architektura TCP/IP Co je TCP/IP? V úzkém slova smyslu je to sada protokolů používaných v počítačích sítích s počítači na bázi Unixu: TCP = Transmission Control Protocol

Více

Maturitní témata Školní rok: 2015/2016

Maturitní témata Školní rok: 2015/2016 Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní

Více

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

Komunikační protokoly počítačů a počítačových sítí

Komunikační protokoly počítačů a počítačových sítí Komunikační protokoly počítačů a počítačových sítí Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1138_Komunikační protokoly počítačů a počítačových sítí_pwp Název školy: Číslo a název projektu:

Více

InputStream. FilterInputStream

InputStream. FilterInputStream 6. Vstupy a výstupy Pro práci se vstupy a výstupy nám Java poskytuje celou řadu tříd a jejich metod. Jsou uloženy v balíku java.io. Tato knihovna je založena na mechanizmu tzv. vstupních a výstupních proudů

Více

Dědění, polymorfismus

Dědění, polymorfismus Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá

Více

Internet protokol, IP adresy, návaznost IP na nižší vrstvy

Internet protokol, IP adresy, návaznost IP na nižší vrstvy Metodický list č. 1 Internet protokol, IP adresy, návaznost IP na nižší vrstvy Cílem tohoto tematického celku je poznat formát datagramů internet protokolu (IP) a pochopit základní principy jeho fungování

Více

Část 1 Příklad GUI aplikace Simulátor/Plátno. GUI s plátnem Struktura aplikace Struktura simulátoru Struktura grafického rozhraní Praktické ukázky

Část 1 Příklad GUI aplikace Simulátor/Plátno. GUI s plátnem Struktura aplikace Struktura simulátoru Struktura grafického rozhraní Praktické ukázky Část 1 Příklad GUI aplikace Simulátor/Plátno Část 2 Spuštění externího programu v Javě Vícevláknové aplikace modely a příklady Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

17. Projekt Trojúhelníky

17. Projekt Trojúhelníky Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským

Více

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5); Programovací jazyk PHP doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Třídy a objekty Výjimky Webové aplikace

Více

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky UPS. FTP Klient. A05463 fboranek@atlas.

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky UPS. FTP Klient. A05463 fboranek@atlas. Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky UPS FTP Klient Plzeň, 2007 František Bořánek A05463 fboranek@atlas.cz Obsah 1 Úvod......2 2 Zadaní......2

Více

Seminář Java II p.1/43

Seminář Java II p.1/43 Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii

Více

Úvod do po íta ových sítí KIV/UPS. Ing. Petr V elák 16. prosince 2008

Úvod do po íta ových sítí KIV/UPS. Ing. Petr V elák 16. prosince 2008 Úvod do po íta ových sítí KIV/UPS Ing. Petr V elák 16. prosince 2008 1 Obsah 1 Organiza ní záleºitosti 6 1.1 Podmínky absolvování p edm tu...................................... 6 1.1.1 Zápo et................................................

Více

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat.

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat. Počítačové sítě Počítačová síť je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat. Základní prvky sítě Počítače se síťovým adaptérem pracovní

Více

Ing. Jitka Dařbujanová. TCP/IP, telnet, SSH, FTP

Ing. Jitka Dařbujanová. TCP/IP, telnet, SSH, FTP Ing. Jitka Dařbujanová TCP/IP, telnet, SSH, FTP Globální systém pro propojení počítačových sítí, který k tomuto využívá sadu protokolů TCP/IP Síť mnoha různých sítí propojených metalickými, optickými kabely,

Více

PŘETĚŽOVÁNÍ OPERÁTORŮ

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

Typy samostatných úloh PSI 2005/2006

Typy samostatných úloh PSI 2005/2006 Typy samostatných úloh PSI 2005/2006 Každá úloha má dvě části. Část analytickou, která slouží k zachycování komunikace na síti a k zobrazování zachycených dat pomocí grafického rozhraní. K zachycování

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

PHP a Large Objecty v PostgreSQL

PHP a Large Objecty v PostgreSQL PHP a Large Objecty v PostgreSQL Pavel Janík ml. http://www.janik.cz PHP a Large Objecty v PostgreSQL 1 Jazyk PHP je velmi mocným jazykem pro vývoj webových aplikací. Má podporu snad všech velkých i menších

Více

POČÍTAČOVÉ SÍTĚ A KOMUNIKACE

POČÍTAČOVÉ SÍTĚ A KOMUNIKACE POČÍTAČOVÉ SÍTĚ A KOMUNIKACE OBOR: EKONOMIKA A PODNIKÁNÍ ZAMĚŘENÍ: VÝPOČETNÍ TECHNIKA FORMA: DENNÍ STUDIUM 1. Počítačové sítě, základní rozdělení počítačových sítí a. vznik a vývoj počítačových sítí b.

Více

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem

Více

NIO. Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

NIO. Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha NIO Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Více

Access Control Lists (ACL)

Access Control Lists (ACL) Access Control Lists (ACL) Počítačové sítě 11. cvičení ACL Pravidla pro filtrování paketů (bezestavová) Na základě hlaviček (2.,) 3. a 4. vrstvy Průchod pravidly od 1. k poslednímu Při nalezení odpovídajícího

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13 Obsah Úvod 11 Platforma.NET 11.NET Framework 11 Visual Basic.NET 12 1 Základní principy a syntaxe 13 Typový systém 13 Hodnotové typy 13 Struktury 15 Výčtové typy 15 Referenční typy 15 Konstanty 16 Deklarace

Více

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí, 9. Sítě MS Windows MS Windows existoval ve 2 vývojových větvích 9x a NT, tyto později byly sloučeny. V současnosti existují aktuální verze Windows XP a Windows 2003 Server. (Očekává se vydání Windows Vista)

Více

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k

Více

OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH 8 Proudová knihovna 8.1 Hierarchie proudů... 8-1 8.2 Standardně zavedené proudy... 8-1 8.

OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH 8 Proudová knihovna 8.1 Hierarchie proudů... 8-1 8.2 Standardně zavedené proudy... 8-1 8. David MATOUŠEK OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PØÍKLADECH Praha 2011 David Matoušek Objektové programování v C++ v pøíkladech Lektoroval Ing. Bohumil Brtník, Ph.D. Bez pøedchozího písemného svolení nakladatelství

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

IMPLEMENTACE INFORMAČNÍHO SYSTÉMU VIDIUM V JAZYCE JAVA

IMPLEMENTACE INFORMAČNÍHO SYSTÉMU VIDIUM V JAZYCE JAVA IMPLEMENTACE INFORMAČNÍHO SYSTÉMU VIDIUM V JAZYCE JAVA Michal Brožek, Dominik Svěch, Jaroslav Štefaník MediumSoft a.s., Cihelní 14, 702 00 Ostrava, ČR Abstrakt Autoři v článku popisují postupy použité

Více

Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.

Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue. 23. Třídy, generické třídy, instance, skládání, statické metody a proměnné. Zapouzdření, konstruktory, konzistence objektu, zpřístupnění vnitřní implementace, modifikátory public a private. Polymorfismus,

Více

Profilová část maturitní zkoušky 2013/2014

Profilová část maturitní zkoušky 2013/2014 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Ukázka testu Informatiky pro přijímací zkoušky do navazujícího magisterského studia

Ukázka testu Informatiky pro přijímací zkoušky do navazujícího magisterského studia Ukázka testu Informatiky pro přijímací zkoušky do navazujícího magisterského studia 1. Databázový jazyk SQL obsahuje příkaz SELECT. Příkaz SELECT slouží pro: a. definici dat v tabulkách či pohledech b.

Více

Programování v Javě I. Únor 2009

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

Implementace LL(1) překladů

Implementace LL(1) překladů Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku

Více

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

11 Diagram tříd, asociace, dědičnost, abstraktní třídy 11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,

Více

Analýza aplikačních protokolů

Analýza aplikačních protokolů ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická PROJEKT Č. 4 Analýza aplikačních protokolů Vypracoval: V rámci předmětu: Jan HLÍDEK Komunikace v datových sítích (X32KDS) Měřeno: 28. 4. 2008

Více

Datum vytvoření. Vytvořeno 18. října 2012. Očekávaný výstup. Žák chápe pojmy URL, IP, umí vyjmenovat běžné protokoly a ví, k čemu slouží

Datum vytvoření. Vytvořeno 18. října 2012. Očekávaný výstup. Žák chápe pojmy URL, IP, umí vyjmenovat běžné protokoly a ví, k čemu slouží Číslo projektu CZ.1.07/1.5.00/34.0394 Škola SOŠ a SOU Hustopeče, Masarykovo nám. 1 Autor Ing. Miriam Sedláčková Číslo VY_32_INOVACE_ICT.3.01 Název Teorie internetu- úvod Téma hodiny Teorie internetu Předmět

Více

SOUBORY, VSTUPY A VÝSTUPY

SOUBORY, VSTUPY A VÝSTUPY SOUBORY, VSTUPY A VÝSTUPY Soubory, adresáře a disky Soubory Pro práci se soubory slouží statická třída System.IO.File a nestatická třída System.IO.FileInfo. V prostoru jmen System.IO jsou také definovány

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

Více

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé

Více

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

20. Projekt Domácí mediotéka

20. Projekt Domácí mediotéka Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý

Více

Jazyk C# (seminář 5)

Jazyk C# (seminář 5) Jazyk C# (seminář 5) Pavel Procházka KMI 23. října 2014 Přetěžování metod motivace Představme si, že máme metodu, která uvnitř dělá prakticky to samé, ale liší se pouze parametry V C# můžeme více metod

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

POČÍTAČOVÉ SÍTĚ A KOMUNIKACE OBOR: INFORMAČNÍ TECHNOLOGIE

POČÍTAČOVÉ SÍTĚ A KOMUNIKACE OBOR: INFORMAČNÍ TECHNOLOGIE POČÍTAČOVÉ SÍTĚ A KOMUNIKACE OBOR: INFORMAČNÍ TECHNOLOGIE 1. Počítačové sítě, základní rozdělení počítačových sítí a. vznik a vývoj počítačových sítí b. výhody počítačových sítí c. rozdělení sítí z hlediska

Více

Základní datové struktury

Základní datové struktury Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

Funkční objekty v C++.

Funkční objekty v C++. Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Audit bezpečnosti počítačové sítě. Předmět: Správa počítačových sítí Jiří Kalenský kalenj1@fel.cvut.cz

Audit bezpečnosti počítačové sítě. Předmět: Správa počítačových sítí Jiří Kalenský kalenj1@fel.cvut.cz Audit bezpečnosti počítačové sítě Předmět: Správa počítačových sítí Jiří Kalenský kalenj1@fel.cvut.cz Zadání Prověřit bezpečnost v dané počítačové síti (cca 180 klientských stanic) Nejsou povoleny destruktivní

Více

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko.

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko. Od CGI k FastCGI Ondřej Caletka 5. října 2013 Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko. Ondřej Caletka (CESNET, z.s.p.o.) Od CGI k FastCGI 5. října 2013 1 / 18 Obsah 1 Common

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

Úvod Informace o prostředí Práce se soubory Regulární výrazy Konec. Programování v C# Soubory a regulární výrazy. Petr Vaněček 1 / 27

Úvod Informace o prostředí Práce se soubory Regulární výrazy Konec. Programování v C# Soubory a regulární výrazy. Petr Vaněček 1 / 27 Programování v C# Soubory a regulární výrazy Petr Vaněček 1 / 27 Obsah přednášky Informace o prostředí Práce se soubory Regulární výrazy 2 / 27 Zprostředkování informací Třída System.Environment Poskytuje

Více

9. Polymorfismus a rozhraní

9. Polymorfismus a rozhraní Polymorfismus a rozhraní strana 73 9. Polymorfismus a rozhraní Tato kapitola navazuje na základní informace o objektech v kapitole 2, zde se budeme zabývat přetěžováním metod, polymorfismem a rozhraními.

Více