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(" 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(" 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(" 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

Jak naprogramovat internetovou komunikaci?

Jak naprogramovat internetovou komunikaci? Jak naprogramovat internetovou komunikaci? Připomenutí IP paket v. 4 TCP protokol transportní protokol RFC 793 spojovaná spolehlivá služba zajišťuje číslování paketů a potvrzování příjmu mezi koncovými

Více

Programování v jazyku Java Java a Internet, základní pojmy, socketové x datagramové spojení, klient - server architektura.

Programování v jazyku Java Java a Internet, základní pojmy, socketové x datagramové spojení, klient - server architektura. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Programování v jazyku Java Java a Internet, základní pojmy, socketové x datagramové spojení, klient - server architektura. BI-PJV Programování

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

Komunikace v sítích TCP/IP (2)

Komunikace v sítích TCP/IP (2) České vysoké učení technické v Praze FAKULTA INFORMAČNÍCH TECHNOLOGIÍ katedra počítačových systémů Komunikace v sítích TCP/IP (2) Jiří Smítka jiri.smitka@fit.cvut.cz 25.2.2011 1/34 Opakování pojmů IP adresa

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

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

Soubor jako posloupnost bytů

Soubor jako posloupnost bytů Soubory Soubor je množina údajů uložená ve vnější paměti počítače, obvykle na disku Pro soubor jsou typické tyto operace. otevření souboru čtení údaje zápis údaje uzavření souboru Přístup k údajům (čtení

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

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

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

Identifikátor materiálu: ICT-3-03

Identifikátor materiálu: ICT-3-03 Identifikátor materiálu: ICT-3-03 Předmět Téma sady Informační a komunikační technologie Téma materiálu TCP/IP Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí architekturu TCP/IP. Druh

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

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2

Více

KTE / ZPE Informační technologie

KTE / ZPE Informační technologie 4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

IB111 Programování a algoritmizace. Objektově orientované programování (OOP) IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,

Více

TFTP Trivial File Transfer Protocol

TFTP Trivial File Transfer Protocol TFTP Trivial File Transfer Protocol Jan Krňoul KIV / PSI TFTP Jednoduchý protokol pro přenos souborů 1980 IEN 133 1981 RFC 783 1992 RFC 1350 1998 RFC 1785, 2090, 2347, 2348, 2349 Noel Chiappa, Bob Baldvin,

Více

Základy objektové orientace I. Únor 2010

Základy objektové orientace I. Únor 2010 Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných

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

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

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování Cílem tohoto tematického celku je poznat formát internet protokolu (IP) a pochopit základní principy jeho fungování včetně návazných

Více

8. přednáška: Soubory a proudy

8. přednáška: Soubory a proudy 8. přednáška: Soubory a proudy Soubor jako posloupnost bytů Ukládání/čtení primitivních typů Ukládání/čtení primitivních typů a objektů (řetězců) Ukládání/čtení objektů do souboru - serializace Obsah Algoritmizace

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

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky 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 rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

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

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

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

RMI Remote Method Invocation

RMI Remote Method Invocation 2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient

Více

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Dynamicky vázané metody. Pozdní vazba, virtuální metody Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:

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

Textové soubory. alg9 1

Textové soubory. alg9 1 Textové soubory Textový soubor je posloupnost znaků členěná na řádky každý znak je reprezentován jedním bytem, jehož obsah je dán nějakým kódováním znaků členění na řádky je závislé na platformě a obvykle

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

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd 7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

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

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

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

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

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava. Cvičení 5 POČÍTAČOVÁ OBRANA A ÚTOK - POU

Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava. Cvičení 5 POČÍTAČOVÁ OBRANA A ÚTOK - POU Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava Cvičení 5 POČÍTAČOVÁ OBRANA A ÚTOK - POU TCP/IP model Síťová (IP) vrstva - IP (Internet protokol) nejpoužívanější

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

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

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Anotace sady: Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Autor: Blanka Sadovská Klíčová slova: Algoritmus, proměnná, diagram Stupeň a typ vzdělávání: gymnaziální vzdělávání, 3. ročník

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

Programování v C++ 1, 5. cvičení

Programování v C++ 1, 5. cvičení Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

Programování v C++ 2, 4. cvičení

Programování v C++ 2, 4. cvičení Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva

Více

1 Úvod do sítí TCP a UDP Porty... 1

1 Úvod do sítí TCP a UDP Porty... 1 Obsah 1 Úvod do sítí 1 11 TCP a UDP 1 12 Porty 1 2 Práce s URL 2 21 Vytvoření URL 2 22 Získání atributů URL 3 23 Čtení přímo z URL 3 24 Připojení k URL 4 25 Čtení z URLConnection 4 26 Zápis do URLConnection

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

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20 Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................

Více

NMIN201 Objektově orientované programování 1 / :36:09

NMIN201 Objektově orientované programování 1 / :36:09 NMIN201 Objektově orientované programování 1 / 26 8.10.2013 15:36:09 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat

Více

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu Seminář Java Zavádění tříd Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Zavádění tříd 1/ 16 JVM zavádí třídy dynamicky Class loader objekt schopný zavádět třídy abstraktní

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

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

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

6. PRÁCE S DATOVÝMI PROUDY

6. PRÁCE S DATOVÝMI PROUDY 6. PRÁCE S DATOVÝMI PROUDY Balík java.io obsahuje třídy, které slouží pro zpracování datových výstupů a vstupů. Pro obvyklou práci se soubory zde můžeme najít třídy File a RandomAccessFile. Většina tříd

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

Programování v C++ 1, 6. cvičení

Programování v C++ 1, 6. cvičení Programování v C++ 1, 6. cvičení dědičnost, polymorfismus 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

RMI - Distribuované objekty v Javě

RMI - Distribuované objekty v Javě Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování

Více

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7 PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z

Více

Síťové programování. Berkeley sockets Zdroje. Wikipedia Google Jan Kubr

Síťové programování. Berkeley sockets Zdroje. Wikipedia Google Jan Kubr Síťové programování Berkeley sockets Zdroje Wikipedia Google Jan Kubr Co víte o souborech a operacích s nimi Deskriptor (fd) popisovač, číslo Zápis (write, fwrite, ) - deskriptor, data Čtení (read, fread,

Více

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7 PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod 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 třídám a objektům, instančním

Více

NPRG031 Programování II 1 / :25:46

NPRG031 Programování II 1 / :25:46 NPRG031 Programování II 1 / 26 28. 2. 2018 11:25:46 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat jiné objekty

Více

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

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

ADT/ADS = abstraktní datové typy / struktury

ADT/ADS = abstraktní datové typy / struktury DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní

Více

Regulární výrazy. Vzory

Regulární výrazy. Vzory Regulární výrazy Regulární výrazy jsou určeny pro práci s textovými řetězci, jsou součástí J2SDK až od verze 1.4, v předchozích verzích je potřeba použít některou z externích knihoven, např. knihovnu ORO

Více

Počítačové sítě Transportní vrstva. Transportní vrstva

Počítačové sítě Transportní vrstva. Transportní vrstva UDP TCP Rozhraní služeb Rozhraní protokolů 17 6 ICMP IGMP OSPF 01 02 89 SAP Síťová vrstva IP Rozhraní přístupu k I/O ARP Ethernet driver RARP Vrstva síťového rozhraní 1 DATA Systém A Uživatel transportní

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

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

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

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25 Seminář Java Výjimky Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Výjimky 1/ 25 Výjimky Co a k čemu jsou výjimky výjimka je mechanizmus umožňující psát robustní, spolehlivé

Více

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server. SIMATIC S7-200 243-1 2005, Page 1 Program workshopu Začátek: 9.00 GPRS - aplikace pro GPRS, základy - jak nastavit vzdálenou stanici, knihovna instrukcí pro GPRS - jak nastavit server (SINAUT MICRO SC,

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

Obsah. Úvodem 15. Zaměření knihy 15 Co v knize najdete 15 Doprovodné CD 17 Poděkování 18

Obsah. Úvodem 15. Zaměření knihy 15 Co v knize najdete 15 Doprovodné CD 17 Poděkování 18 Obsah Úvodem 15 Zaměření knihy 15 Co v knize najdete 15 Doprovodné CD 17 Poděkování 18 KAPITOLA 1 Jazyky C a C++ 19 Funkce v C/C++ a funkce main 20 Základní datové typy 20 Celočíselné datové typy 20 Znakové

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

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í Semestrální projekt (1) Semestrální projekt (2) Struktura projektu: Adresní plán a konfigurace VLAN Směrování a NAT DNS server DHCP server Zabezpečení

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

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

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ 4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ OBJEKT Program v Javě je staticky strukturován na třídy, jejichž instance (objekty) za běhu dynamicky programu vznikají a zanikají. Objekt je nejprve

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

Profilová část maturitní zkoušky 2017/2018

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

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Počítačové sítě Vrstvový model TCP/IP Ing. Zelinka Pavel

Inovace a zkvalitnění výuky prostřednictvím ICT Počítačové sítě Vrstvový model TCP/IP Ing. Zelinka Pavel Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Počítačové sítě Vrstvový model TCP/IP

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

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

Dědičnost (inheritance)

Dědičnost (inheritance) Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)

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

Registrační číslo projektu: CZ.1.07/1.5.00/ 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/ 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

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

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

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA Common Object Request Broker Architecture FJFI ČVUT 9. 12. 2010 Osnova 1 2 3 4 5 Standard umožňující propojení aplikací psaných v různých jazycích a běžících na různých strojích a architekturách. Definuje

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