Programowanie sieciowe

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie sieciowe"

Transkrypt

1 Programowanie sieciowe Wykład 5: Java sieciowa cd. mgr inŝ. Paweł Kośla mgr Marcin Raniszewski Łódź,

2 Plan wykładu ServerSocket serwer TCP DatagramSocket i DatagramPacket UDP FTP 2

3 Serwer TCP Gniazdo serwerowe ma za zadanie nasłuchiwania na podanym porcie zgłoszeń klientów i następnie obsługiwanie połączenia z nim. Klasa ServerSocket MoŜliwość obsługi wielu klientów. Połączenie dwukierunkowe. Transmisja strumieniowa. Jeden proces moŝe słuchać na danym porcie w danym czasie. 3

4 Typologia serwerów Rodzaje serwerów: serwer jednowątkowy serwer pozornie wielowątkowy serwer wielowątkowy 4

5 Typologia serwerów Serwer jednowątkowy: Obsługa klienta Oczekiwanie Cechy: prostota budowy moŝliwość obsługi tylko jednego klienta naraz kolejny klient musi długo czekać na swoją kolej 5

6 Typologia serwerów Serwer pozornie wielowątkowy: elementy obsługi klienta 1 Sprawdzenie Dołączenie nowego klienta elementy obsługi klienta 2... elementy obsługi klienta n Cechy: zaawansowana budowa moŝliwość obsługi kilku klientów naraz kolejny klient musi czekać aŝ wykonana zostanie tura obsługi podłączonych 6 klientów

7 Typologia serwerów Serwer wielowątkowy: Wątek główny Utworzenie nowego procesu Wątek potomny Początek Wątek potomny Początek Oczekiwanie Obsługa klienta Obsługa klienta Cechy: same zalety moŝliwość obsługi kilku klientów naraz nowi klienci obsługiwani są natychmiastowo Koniec Koniec 7

8 Serwer TCP Podstawowy schemat serwera: open bind accept read write close close2 ServerSocket() open bind accept read write close close2 tworzy gniazdo serwera łączy stworzone gniazdo z lokalnym portem nasłuchuje i akceptuje połączenia od klientów pobiera dane ze strumienia otwartego połączenia z klientem wysyła dane zamyka połączenie zamyka serwer 8

9 Serwer TCP Realizacja serwera jednowątkowego: ServerSocket() accept open connect read write write read close close close2 serwer klient 9

10 Serwer TCP Realizacja serwera wielowątkowego: wątek open connect ServerSocket() accept read write close write/read close klient 2 serwer close2 wątek open connect read write write/read close close klient 1 10

11 Serwer TCP Jeszcze lepszy serwer wielowątkowy: ServerSocket() x10 createthread() open connect write/read close klient 1 serwer close2 wątek accept wątek accept wątek accept read write read write... read write close close close 11

12 Serwer TCP tworzenie Do tworzenia gniazd serwera TCP słuŝą konstruktory: public ServerSocket(int port) throws IOException public ServerSocket(int port, int backlog) throws IOException public ServerSocket(int port, int backlog, InetAddress bindaddr) throws IOException Najczęściej wykorzystuje się pierwszy konstruktor, podając numer portu na którym serwer ma nasłuchiwać: try { ServerSocket ss = new ServerSocket(80); catch (IOException e) { System.err.println(e); 12

13 Serwer TCP tworzenie Podczas tworzenia obiektu ServerSocket obiekt ten próbuje dowiązać się do wskazanego portu na lokalnym hoście (ang. binding). Jeśli port jest juŝ zajęty wyrzucony zostanie wyjątek: java.net.bindexception z klasy bazowej java.io.ioexception Tworzenie własnych serwerów na portach >1024. W systemach Unixowych programy korzystające z portów pomiędzy 1 a 1023 muszą mieć juŝ uprawnienia administratora. Port nr 0. Numer ten mówi Javie, aby skorzystała z pierwszego wolnego portu. Wybrany automatycznie numer portu moŝna odczytać za pomocą metody getlocalport(). try { ServerSocket ftpdata = new ServerSocket(0); int port = ftpdata.getlocalport(); catch (IOException e) { System.err.println(e); 13

14 Serwer TCP tworzenie Skaner portów lokalnych. Sprawdzenie na których portach są juŝ aktywne połączenia. Porównaj z "netstat -an" import java.net.*; import java.io.*; public class SkanerLoc { public static void main(string[] args) { int startport = 1; int stopport = 65535; for (int port = startport; port <= stopport; port++) { try { ServerSocket ss = new ServerSocket(port); ss.close(); catch (IOException ex) { System.out.println("Port " + port + " jest zajety."); 14

15 Serwer TCP Kolejka połączeń System operacyjny zapamiętuje połączenia przychodzące dla kaŝdego portu w kolejce typu FIFO aŝ do jej zapełnienia. Po zapełnieniu kolejki następne połączenia przychodzące będą odrzucane, chyba, Ŝe w kolejce zwolni się jakieś miejsce. Długość kolejki zaleŝy od systemu operacyjnego (5-50). Klient Klient Serwer Klient Klient 15

16 Serwer TCP tworzenie Rozmiar kolejki połączeń moŝe zostać zmieniony w zaleŝności od potrzeb. Wykorzystujemy do tego drugi konstruktor: public ServerSocket(int port, int backlog) throws IOException Przykład: try { ServerSocket httpd = new ServerSocket(80, 50); catch (IOException ex) { System.err.println(ex); KaŜdy system operacyjny ma określoną maksymalną długość kolejki. Jeśli więc zadeklarowana będzie kolejka dłuŝsza niŝ istniejące maksimum, to długość kolejki zawęŝona będzie do wartości maksymalnej. Po utworzeniu gniazda serwera długość kolejki nie moŝe być juŝ zmieniana. 16

17 Serwer TCP tworzenie Komputer moŝe uŝywać wielu interfejsów sieciowych Host Poprzednio stworzone gniazda nasłuchują na wszystkich interfejsach. Do stworzenia gniazda serwera tylko dla wybranego interfejsu słuŝy: public ServerSocket(int port, int backlog, InetAddress bindaddr) throws IOException Przykład: try { InetAddress ia = InetAddress.getByName(" "); ServerSocket ss = new ServerSocket(80, 50, ia); catch (IOException e) { System.err.println(e); 17

18 Serwer TCP tworzenie Istnieje moŝliwość rozbicia tworzenia obiektu ServerSocket i przywiązania do portu. Wykorzystujemy wówczas konstruktor i metodę bind: public ServerSocket() throws IOException public void bind(socketaddress endpoint) throws IOException Odczyt informacji o gnieździe (tylko lokalne informacje): public InetAddress getinetaddress() public int getlocalport() 18

19 Serwer TCP nasłuchiwanie Po stworzeniu gniazda serwer czeka na zgłoszenia klientów. Odpowiedzialna za to jest metoda: public Socket accept() throws IOException Metoda nasłuchuje i akceptuje połączenia z klientem (czekającym w kolejce). Zwraca obiekt klasy Socket, reprezentujący połączenie klient-serwer. Jest to metoda blokująca. Blokuje wykonywanie dalszych instrukcji dopóki nie nastąpi połączenie. MoŜna zmienić opcje blokującej metody accept() public void setsotimeout(int timeout) throws SocketException timeout czas czekania na połączenie od klienta (0 domyślne, oznacza nieskończoność). Wówczas metoda accept moŝe zwrócić wyjątek SocketTimeoutException gdy czas nasłuchiwania minie. 19

20 Serwer TCP akceptowanie ServerSocket Klient accept() Socket read/write Serwer 20

21 Serwer TCP połączenie Połączenie z klientem realizowane jest za pomocą obiektu gniazda Socket Odczytywanie informacji o połączeniu jak w przypadku Klienta TCP Wysyłanie i odbieranie danych takie samo jak w Kliencie TCP 21

22 Serwer TCP zakończenie Metoda close() klasy Socket kończy konkretne połączenie klientserwer. Serwer dalej działa. Aby zakończyć działanie serwera naleŝy wykonać metodę close() na obiekcie klasy ServerSocket 22

23 Serwer TCP Fragment serwera: try { ServerSocket ss = new ServerSocket(2345); Socket s = ss.accept(); PrintWriter pw = new PrintWriter(s.getOutputStream()); pw.println("hello!"); pw.println("goodbye"); s.close(); ss.close(); catch (IOException e) { System.err.println(e); close() zamyka połączenie gniazda Socket s 23

24 Serwer TCP Fragment serwera wielokrotnie akceptującego połączenia: try { ServerSocket ss = new ServerSocket(2345); while (bstop==false) { Socket s = ss.accept(); PrintWriter pw = new PrintWriter(s.getOutputStream()); pw.println("hello!"); pw.println("goodbye"); s.close(); ss.close(); catch (IOException e) { System.err.println(e); 24

25 Serwer TCP - podsumowanie Opisane metody pozwalają obsługiwać klientów po kolei. Do obsługiwania wielu klientów jednocześnie wykorzystujemy wielowątkowość. Serwer startujemy na porcie, który później poznaje klient. Oczekujemy zgłoszeń klientów i następnie tworzymy komunikację między gniazdami Socket-Socket. 25

26 Komunikacja UDP Niepewna transmisja zagubione datagramy Brak kontroli przepływu datagramy w róŝnych kolejnościach Transmisja szybsza od TCP Wiadomość zawiera się w pojedynczym komunikacie UDP (dane nie większe niŝ ok. 60kB) Do obsługi komunikacji UDP słuŝą klasy: DatagramSocket gniazdo datagramowe DatagramPacket pakiet UDP (zamiast strumieni TCP) Host 1 Host 2 26

27 Komunikacja UDP DatagramSocket jest uŝywane do wysyłania i odbierania DatagramPacket DatagramPacket jest nakładką dla tablicy bajtów, z której dane będą wysyłane lub do której dane będą przyjmowane. Obiekt tej klasy przechowuje takŝe adres i port hosta, do którego dane będą wysłane. DatagramSocket jest połączeniem do portu, z którego nadawane i odbierane są przesyłki. Nie ma rozróŝnienia między klientem a serwerem DatagramSocket moŝe wysyłać do róŝnych odbiorców gdyŝ adres odbiorcy zapisany jest w pakiecie a nie w gnieździe. 27

28 UDP - DatagramPacket Nakładka dla tablicy bajtów. Zawiera takŝe port i adres hosta do którego dane będą wysłane (lub z którego dane zostały odebrane) Do tworzenia pakietu słuŝą konstruktory: public DatagramPacket(byte[] data, int length) public DatagramPacket(byte[] data, int length, InetAddress host, int port) Pozwalają przekazać obiektowi DatagramPacket tablicę bajtów oraz liczbę bajtów, która ma być wysłana. String s = "Wiadomosc do odbiorcy" byte[] b = s.getbytes(); DatagramPacket dp = new DatagramPacket(b, b.length); UŜywamy tylko gdy gniazdo zostało przypisane do jakiegoś odbiorcy metoda connect() (bardzo rzadko) 28

29 UDP - DatagramPacket Tradycyjnie powinno podać się adres odbiorcy i port na który wysyłamy. try { InetAddress host = InetAddress.getByName(" "); int port = 1111; String s = "Wiadomosc do odbiorcy2" byte[] b = s.getbytes(); DatagramPacket dp = new DatagramPacket(b, b.length, host, port); catch (UnknownHostException ex) { System.err.println(ex); Tablica bajtów jest przekazywana do konstruktora przez referencję. Dlatego jeśli jej zawartość zostanie zmieniona poza obiektem, to zmiany te dotyczyć będą równieŝ danych w DatagramPacket 29

30 UDP - DatagramPacket Obiekty są modyfikowalne, tzn. Ŝe moŝna zmienić ich parametry takie jak: dane, długość danych, port, adres. Robi się to za pomocą metod: public void setaddress(inetaddress host) public void setport(int port) public void setdata(byte buffer[]) public void setlength(int length) Do odczytu wspomnianych właściwości moŝna uŝyć metod: public InetAddress getaddress() public int getport() public byte[] getdata() public int getlength() Te drugie szczególnie przydają się przy odbieraniu pakietów. 30

31 UDP - DatagramSocket Mamy juŝ pakiet, teraz trzeba go wysłać. Do tworzenia datagramowych gniazd uŝywamy konstruktorów: public DatagramSocket() throws SocketException public DatagramSocket(int port) throws SocketException public DatagramSocket(int port, InetAddress laddr) throws SocketException Pierwszy uŝywany jest do gniazd datagramowych działających w trybie klienta (tylko do wysyłania, z pierwszego wolnego portu) Dwa następne mają dodatkowo moŝliwość nasłuchiwania i odbierania pakietów na wskazanym porcie i opcjonalnie tylko ze wskazanego interfejsu. Wysyłanie takim gniazdem następuje z podanego portu. Tak jak w TCP, tylko jeden proces moŝe nasłuchiwać na danym porcie (porty TCP i UDP są rozdzielne) 31

32 UDP - DatagramSocket UDP Port 445 zajety UDP Port 500 zajety UDP Port 1033 zajety UDP Port 1060 zajety UDP Port 1081 zajety UDP Port 1900 zajety Skaner portów lokalnych import java.net.*; import java.io.ioexception; public class UDPSkaner { public static void main(string[] args) { int startport = 1; int stopport = 65535; for (int port = startport; port <= stopport; port++) { try { DatagramSocket ds = new DatagramSocket(port); ds.close(); catch (IOException ex) { System.out.println("UDP Port " + port + " zajety"); PoniewaŜ UDP nie korzysta z połączeń, nie moŝna napisać skanera zdalnych portów UDP. 32

33 UDP wysyłanie danych Przekonwertować dane na tablicę bajtów. Przekazać do konstruktora DatagramPacket tablicę, razem z długością danych umieszczonych w tablicy, oraz InetAddress z numerem portu, pod który wysyłane będą dane. Wykonać metodę send() na obiekcie DatagramSocket try { InetAddress host = InetAddress.getByName(" "); int port = 1111; String s = "Wiadomosc do odbiorcy2" byte[] b = s.getbytes(); DatagramPacket dp = new DatagramPacket(b, b.length, host, port); DatagramSocket sender = new DatagramSocket(); sender.send(dp); catch (UnknownHostException ex) { System.err.println(ex); catch (IOException e) { System.out.println(e); 33

34 UDP odbieranie danych Utworzyć obiekt klasy DatagramSocket przekazując co najmniej numer portu, na którym będzie prowadzony nasłuch. Przekazać pusty obiekt DatagramPacket do metody receive() gniazda DatagramSocket. public void receive(datagrampacket dp) throws IOException Wątek wywołujący tą metodę zablokuje się, aŝ do chwili otrzymania pakietu. Po otrzymaniu pakietu obiekt DatagramPacket wypełniony zostanie danymi (takŝe hostem i portem nadawcy) try{ DatagramSocket ds = new DatagramSocket(1111); byte buffer[] = new byte[10]; DatagramPacket dp = new DatagramPacket(buffer,buffer.length); ds.receive(dp); byte[] data = dp.getdata(); String s = new String(data, 0, data.length); System.out.println(s); System.out.println(dp.getPort()); catch(ioexception e) { System.out.println(e); 34

35 UDP - gniazda Istnieje moŝliwość przywiązania gniazda UDP do hosta i portu zdalnego. Metoda klasy DatagramSocket: public void connect(inetaddress address, int port) Mimo sugerującej nazwy, nie następuje proces łączenia ze zdalnym hostem. Dzięki niej gniazdo takie, ma moŝliwość wysyłania i odbierania pakietów UDP do/z podanego zdalnego hosta i portu. UŜywamy wówczas konstruktora pakietu: public DatagramPacket(byte[] data, int length) Próba wykorzystania drugiego (przekazując inny host lub port od tego związanego funkcja connect() ) kończy się niepowodzeniem. try{ DatagramSocket ds = new DatagramSocket(1234); String s = "Komunikat" ; byte[] b = s.getbytes(); InetAddress host = InetAddress.getByName(" "); ds.connect(host,1111); DatagramPacket dp = new DatagramPacket(b, b.length); ds.send(dp); catch(ioexception e){ System.out.println(e); 35

36 UDP - rozgłaszanie Jeśli chcemy wysłać pakiet do wszystkich hostów w sieci, adresujemy obiekt DatagramPacket adresem rozgłoszeniowym. try{ DatagramSocket ds = new DatagramSocket(); String s = "Do wszystkich!!" ; byte[] b = s.getbytes(); InetAddress host = InetAddress.getByName(" "); DatagramPacket dp = new DatagramPacket(b, b.length, host, 1111); ds.send(dp); catch(ioexception e) { System.out.println(e); 36

37 UDP rozgłaszanie grupowe Do rozgłaszania grupowego korzystamy z klasy MulticastSocket, która jest pochodną DatagramSocket. Zdefiniowane są tu dodatkowe metody: public void joingroup(inetaddress mcastaddr) throws IOException public void leavegroup(inetaddress mcastaddr) throws IOException SłuŜą one do zapisywania i wypisywania z grupy. W parametrze przekazujemy obiekt InetAddress reprezentujący adres grupy (adres klasy D) Jeśli następnie wyślemy pakiet na ten adres dotrze on do wszystkich hostów zapisanych. String msg = "Hello"; InetAddress group = InetAddress.getByName(" "); MulticastSocket s = new MulticastSocket(6789); s.joingroup(group); DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), group, 6789); s.send(hi); 37

38 UDP podsumowanie Przepis na komunikację UDP: 1. Utworzenie obiektu DatagramSocket bez podawania jakichkolwiek argumentów (podanie portu waŝne przy odbieraniu pakietów). 2. Opcjonalnie związanie ze zdalnym hostem metodą connect(). 3. Stworzenie jednego lub kilku obiektów DatagramPacket zawierają tablice bajtów, które naleŝy wysłać lub które zostały odebrane. 4. Jeśli nie została wywołana metoda connect(), to podczas tworzenia obiektów DatagramPacket naleŝy podać obiekt InetAddress oraz numer portu. 5. Określenie długości poszczególnych pakietów oraz przesłanie ich poprzez metodę send(pakietout) 6. Odebranie danych poprzez metodę receive(pakietin) 38

39 Protokół FTP import java.net.*; import java.io.*; public class FTP { public static void main(string[] args) { try{ Socket s = new Socket("ftp.kis.p.lodz.pl",21); klienta BufferedReader we = new BufferedReader(new wspierajacego protokol ftps. InputStreamReader(s.getInputStream()) ); Wersja tekstowa klienta scp: PrintWriter wy = new PrintWriter(s.getOutputStream()); wy.println("user anonymouse"); wy.println("pass ty/ wy.println("pwd"); wy.println("quit"); Wersja okienkowa klienta scp: wy.flush(); String line; Wersja okienkowa klienta ftps: while( (line=we.readline())!= null){ System.out.println(line); s.close(); catch(ioexception e) { System.out.println(e); 220- Witaj - Aby pobrac dane z konta uzyj sftp, scp badz FTP server ready 550 SSL/TLS required on the control channel 550 SSL/TLS required on the control channel 550 SSL/TLS required on the control channel 221 Goodbye. 39

Przykłady interfejsu TCP i UDP w Javie

Przykłady interfejsu TCP i UDP w Javie Przykłady interfejsu TCP i UDP w Javie W Javie interfejsy TCP i UDP znajdują się w pakiecie java.net http://docs.oracle.com/javase/6/docs/api/java/net/packagesummary.html 1 Przykład interfejsu UDP Protokół

Bardziej szczegółowo

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania

Bardziej szczegółowo

Programowanie rozproszone w języku Java

Programowanie rozproszone w języku Java Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz

Bardziej szczegółowo

Programowanie aplikacji w architekturze Klient-Serwer - UDP

Programowanie aplikacji w architekturze Klient-Serwer - UDP Katedra Inżynierii Komputerowej Koszalin 2002 Programowanie dla sieci Wykłady i ćwiczenia Dariusz Rataj Część 2 Programowanie aplikacji w architekturze Klient-Serwer - UDP Kontakt email: rataj@man.koszalin.pl

Bardziej szczegółowo

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

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Schemat Internetu R R R R R R R 2 Model Internetu 3 Protokoły komunikacyjne stosowane w sieci Internet Protokoły warstwy

Bardziej szczegółowo

Aplikacja wielow tkowa prosty komunikator

Aplikacja wielow tkowa prosty komunikator Aplikacja wielow tkowa prosty komunikator Klient 0 (host 1) W tek 0 Komponent serwera W tek pochodny 3.1 Klient 1 (host 2) W tek 1 Komponent serwera W tek pochodny 3.2 Host 4 Serwer W tek 3 Klient 2 (host

Bardziej szczegółowo

Komunikacja z użyciem gniazd aplikacje klient-serwer

Komunikacja z użyciem gniazd aplikacje klient-serwer Programowanie obiektowe Komunikacja z użyciem gniazd aplikacje klient-serwer Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Architektura

Bardziej szczegółowo

Java programowanie sieciowe

Java programowanie sieciowe Java programowanie sieciowe Podstawowe pojęcia dotyczące sieci Sieć to zbiór komputerów i innych urządzeń, które mogą się ze sobą komunikować w czasie rzeczywistym za pomocą transmisji danych. Każda maszyna

Bardziej szczegółowo

Serwer współbieżny połączeniowy

Serwer współbieżny połączeniowy Serwery współbieżne 1. Serwery współbieżne serwery połączeniowe, usuwanie zakończonych procesów, serwery bezpołączeniowe, 2. Jednoprocesowe serwery współbieżne. koncepcja i implementacja. 1 Serwer współbieżny

Bardziej szczegółowo

JAVA I SIECI. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html

JAVA I SIECI. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html JAVA I SIECI ZAGADNIENIA: URL, Interfejs gniazd, transmisja SSL, protokół JNLP. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA,

Bardziej szczegółowo

URL. Budowa URL (ang. Uniform Resource Locator): http://java.sun.com:80/docs/tutorial/index.html?name=net working#downloading

URL. Budowa URL (ang. Uniform Resource Locator): http://java.sun.com:80/docs/tutorial/index.html?name=net working#downloading Obsługa sieci URL Budowa URL (ang. Uniform Resource Locator): http://java.sun.com:80/docs/tutorial/index.html?name=net working#downloading protokół = http authority = java.sun.com:80 host = java.sun.com

Bardziej szczegółowo

Java programowanie w sieci. java.net RMI

Java programowanie w sieci. java.net RMI Java programowanie w sieci java.net RMI Programowanie sieciowe OSI WARSTWA APLIKACJI (7) WARSTWA PREZENTACJI(6) WARSTWA SESJI (5) WARSTWA TRANSPORTU (4) DoD Warstwa aplikacji (HTTP) Transport (gniazdka)

Bardziej szczegółowo

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1. Wielowątkowość Programowanie w środowisku rozproszonym. Wykład 1. Informacje organizacyjne Wymiar godzin: W-30, LAB-15 Zaliczenie wykonanie kilku programów i ich zaliczenie (w trakcie zajęć laboratoryjnych)

Bardziej szczegółowo

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

Ćwiczenie 2. Obsługa gniazd w C#. Budowa aplikacji typu klient-serwer z wykorzystaniem UDP. Ćwiczenie 2. Obsługa gniazd w C#. Budowa aplikacji typu klient-serwer z wykorzystaniem UDP. Wprowadzenie Gniazdo (ang. socket) z naszego punktu widzenia (czyli programów w.net) reprezentuje najniższy poziom

Bardziej szczegółowo

Podstawowe typy serwerów

Podstawowe typy serwerów Podstawowe typy serwerów 1. Algorytm serwera. 2. Cztery podstawowe typy serwerów. iteracyjne, współbieżne, połączeniowe, bezpołączeniowe. 3. Problem zakleszczenia serwera. 1 Algorytm serwera 1. Utworzenie

Bardziej szczegółowo

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną,

Bardziej szczegółowo

Schemat dla UDP. = możliwe zablokowanie aplikacji KLIENT SERWER. s=socket(...) bind(s,...) recvfrom(s,...) sendto(s,...) recvfrom(s,...

Schemat dla UDP. = możliwe zablokowanie aplikacji KLIENT SERWER. s=socket(...) bind(s,...) recvfrom(s,...) sendto(s,...) recvfrom(s,... Schemat dla UDP = możliwe zablokowanie aplikacji KLIENT s=socket(...) [bind(s,...)] sendto(s,...) recvfrom(s,...) sendto(s,...) close(s) SERWER s=socket(...) bind(s,...) recvfrom(s,...) sendto(s,...) recvfrom(s,...)

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Komunikator internetowy w C#

Komunikator internetowy w C# PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej

Bardziej szczegółowo

Programowanie aplikacji w architekturze Klient-Serwer - TCP

Programowanie aplikacji w architekturze Klient-Serwer - TCP Katedra Inżynierii Komputerowej Koszalin 2002 Programowanie dla sieci Wykłady i ćwiczenia Dariusz Rataj Część 1 Programowanie aplikacji w architekturze Klient-Serwer - TCP Kontakt email: rataj@man.koszalin.pl

Bardziej szczegółowo

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 6, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Wprowadzenie do operacji wejścia/wyjścia: strumienie 2. Podstawowe klasy strumieni i InputStream/OutputStream

Bardziej szczegółowo

Strumienie i serializacja

Strumienie i serializacja Strumienie i serializacja Prezentacja dostępna na Syriuszu: http://sirius.cs.put.poznan.pl/~inf80156 Klasy: InputStream, OutputStream, Reader i Writer W Javie hierarchia strumieni oparta jest o cztery

Bardziej szczegółowo

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

PROTOKOŁY WARSTWY TRANSPORTOWEJ

PROTOKOŁY WARSTWY TRANSPORTOWEJ PROTOKOŁY WARSTWY TRANSPORTOWEJ Na bazie protokołu internetowego (IP) zbudowane są dwa protokoły warstwy transportowej: UDP (User Datagram Protocol) - protokół bezpołączeniowy, zawodny; TCP (Transmission

Bardziej szczegółowo

Tworzenie aplikacji rozproszonej w Sun RPC

Tworzenie aplikacji rozproszonej w Sun RPC Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

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

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

1. Model klient-serwer

1. Model klient-serwer 1. 1.1. Model komunikacji w sieci łącze komunikacyjne klient serwer Tradycyjny podziała zadań: Klient strona żądająca dostępu do danej usługi lub zasobu Serwer strona, która świadczy usługę lub udostępnia

Bardziej szczegółowo

namespace HostedReceiver { public class Receiver: IConfigureThisEndpoint, AsA_Server {

namespace HostedReceiver { public class Receiver: IConfigureThisEndpoint, AsA_Server { Pobranie i instalacja: - http://www.nservicebus.com/ - download v3.0 now - rozpakować - MSMQ powinno być zainstalowane (Panel Sterowania -> Dodaj/Usuń programy -> Składniki systemu Windows -> Kolejkowanie

Bardziej szczegółowo

Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców

Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców METODY WYMIANY INFORMACJI W SIECIACH PAKIETOWYCH Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców TRANSMISJA

Bardziej szczegółowo

Klasy w java.net. ContentHandlerFactory FileNameMap SocketImplFactory URLStreamHandlerFactory. Adres internetowy

Klasy w java.net. ContentHandlerFactory FileNameMap SocketImplFactory URLStreamHandlerFactory. Adres internetowy Klasy w java.net Klasy Interfejsy Wyjątki ContentHandler DatagramPacket DatagramSocket DatagramSocketImpl HttpURLConnection InetAddress MulticastSocket ServerSocket Socket SocketImpl URL URLConnection

Bardziej szczegółowo

Komponenty sterowane komunikatami

Komponenty sterowane komunikatami Komponenty sterowane komunikatami 1. Usługa JMS asynchroniczność, model przesyłania komunikatów, 2. Przykład wysyłanie wiadomości, odbieranie wiadomości, komponent sterowany komunikatami 3. Komponenty

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Telekomunikacji

Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Telekomunikacji Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Telekomunikacji Bezpieczeństwo sieci teleinformatycznych Laboratorium 5 Temat: Polityki bezpieczeństwa FortiGate. Spis treści 2. Cel ćwiczenia...

Bardziej szczegółowo

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1 Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP FILTROWANIE IP mechanizm decydujący, które typy datagramów IP mają być odebrane, które odrzucone. Odrzucenie oznacza usunięcie, zignorowanie datagramów, tak jakby nie zostały w ogóle odebrane. funkcja

Bardziej szczegółowo

Zdalna obsługa transcievera. H A M R A D I O D E L U X E R e m o t e S e r v e r C o n f i g u r a t i o n

Zdalna obsługa transcievera. H A M R A D I O D E L U X E R e m o t e S e r v e r C o n f i g u r a t i o n Zdalna obsługa transcievera H A M R A D I O D E L U X E R e m o t e S e r v e r C o n f i g u r a t i o n Do poprawnej pracy zdalnego dostępu do radiostacji, niezbędne jest działające oprogramowanie Ham

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python 13 grudnia 2013 Plan wykładu 1 2 Wersje Cechy Plan wykładu 1 2 Wersje Cechy Schemat sieci HTTP, POP3, SMTP, FTP Application layer Transport layer TCP, UDP Internet Protokół UDP Cechy protokołu Protokół

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

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

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

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

Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła Wydział Inżynierii Mechanicznej i Informatyki Instytut Informatyki Teoretycznej i Stosowanej

Bardziej szczegółowo

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu. Wstęp Java Zadanie Celem laboratorium jest zapoznanie się z podstawami platformy oraz języka Java. W ramach zadania należy przygotować aplikację zarządzania notatkami użytkownika obsługiwaną z konsoli.

Bardziej szczegółowo

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1 Architektury systemów rozproszonych LABORATORIUM Ćwiczenie 1 Temat: Aplikacja klient-serwer - implementacja w środowisku QT Creator. Przykładowy projekt aplikacji typu klient - serwer został udostępniony

Bardziej szczegółowo

Mapa wykładu. 2.6 Poczta elektroniczna. 2.7 FTP 2.8 Dystrybucja zawartości. 2.9 Dzielenie plików P2P SMTP, POP3, IMAP

Mapa wykładu. 2.6 Poczta elektroniczna. 2.7 FTP 2.8 Dystrybucja zawartości. 2.9 Dzielenie plików P2P SMTP, POP3, IMAP Mapa wykładu 2.1 Zasady budowy protokołów w. aplikacji 2.2 WWW i HTTP 2.3 DNS 2.4 Programowanie przy użyciu gniazd TCP 2.5 Programowanie przy użyciu gniazd UDP 2.6 Poczta elektroniczna SMTP, POP3, IMAP

Bardziej szczegółowo

Podstawowe pojł cia. Czego sił nauczymy? Pojł cia hosta. Hosty Adresowanie Internetowe Porty Protokoóy

Podstawowe pojł cia. Czego sił nauczymy? Pojł cia hosta. Hosty Adresowanie Internetowe Porty Protokoóy Czego sił nauczymy? Podstawowe pojł cia Adresowania w Internecie URL CGI Servlety i JSP Sokety Sokety dla aplikacji serwerowych UDP Obsóuga XMLa z poziomu Javy z wykorzystaniem interfejso w SAX i DOM WebServices,

Bardziej szczegółowo

Problemy techniczne SQL Server

Problemy techniczne SQL Server Problemy techniczne SQL Server Co zrobić, jeśli program Optivum nie łączy się poprzez sieć lokalną z serwerem SQL? Programy Optivum, które korzystają z bazy danych umieszczonej na serwerze SQL, mogą być

Bardziej szczegółowo

Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007

Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007 Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007 Zawartość 1 WSTĘP 2 2 BUDOWA OKNA PROGRAMU MICROSOFT OUTLOOK 2007 3 3 USTAWIENIA WIDOKU EKRANU 3 4 KORZYSTANIE Z PROGRAMU MICROSOFT

Bardziej szczegółowo

Instrukcja programowania IRSC OPEN

Instrukcja programowania IRSC OPEN Instrukcja programowania IRSC OPEN Zennio IRSC OPEN (ZN1CL-IRSC) I. UWAGI WSTĘPNE Urządzenie IRSC OPEN umoŝliwia wykorzystanie w systemie KNX komend róŝnych pilotów zdalnego sterowania do obsługi urządzeń

Bardziej szczegółowo

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe N, Wykład 4: Protokoły TCP/UDP i usługi sieciowe 1 Adres aplikacji: numer portu Protokoły w. łącza danych (np. Ethernet) oraz w. sieciowej (IP) pozwalają tylko na zaadresowanie komputera (interfejsu sieciowego),

Bardziej szczegółowo

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4 Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.

Bardziej szczegółowo

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

Komunikacja za pomocą potoków. Tomasz Borzyszkowski Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania

Bardziej szczegółowo

Programowanie sieciowe

Programowanie sieciowe Programowanie sieciowe Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2014/2015 Michał Cieśla pok. D-2-47, email: michal.ciesla@uj.edu.pl konsultacje: środy 10-12 http://users.uj.edu.pl/~ciesla/

Bardziej szczegółowo

Instrukcje dotyczące funkcji zarządzania pasmem w urządzeniach serii ZyWALL.

Instrukcje dotyczące funkcji zarządzania pasmem w urządzeniach serii ZyWALL. Instrukcje dotyczące funkcji zarządzania pasmem w urządzeniach serii ZyWALL. Niniejsza instrukcja zawiera wskazówki dotyczące konfiguracji funkcji BW MGMT dostępnej w urządzeniach serii ZyWALL. Dość często

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Podstawowe protokoły transportowe stosowane w sieciach IP cz.1

Podstawowe protokoły transportowe stosowane w sieciach IP cz.1 Laboratorium Technologie Sieciowe Podstawowe protokoły transportowe stosowane w sieciach IP cz.1 Wprowadzenie Ćwiczenie przedstawia praktyczną stronę następujących zagadnień: połączeniowy i bezpołączeniowy

Bardziej szczegółowo

Instrukcja dotycząca funkcji zarządzania pasmem w urządzeniach serii Prestige 660HW.

Instrukcja dotycząca funkcji zarządzania pasmem w urządzeniach serii Prestige 660HW. Instrukcja dotycząca funkcji zarządzania pasmem w urządzeniach serii Prestige 660HW. Niniejsza instrukcja zawiera wskazówki dotyczące konfiguracji funkcji BW MGMT dostępnej w urządzeniach serii Prestige

Bardziej szczegółowo

Programowanie sieciowe

Programowanie sieciowe Programowanie sieciowe dr Tomasz Tyrakowski Dyż ury: wtorki 12:00 13:00 czwartki 14:00 15:00 pokój B4-5 e-mail: ttomek@amu.edu.pl materiały: http://www.amu.edu.pl/~ttomek 1 Wymagania podstawowa znajomość

Bardziej szczegółowo

Projektowanie aplikacji internetowych laboratorium

Projektowanie aplikacji internetowych laboratorium Projektowanie aplikacji internetowych laboratorium Programowanie w języku Java Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji

Bardziej szczegółowo

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech BAZY DANYCH Obsługa bazy z poziomu języka PHP opracowanie: Michał Lech Plan wykładu 1. PHP - co to jest? 2. Bazy danych obsługiwane przez PHP 3. Podstawowe polecenia 4. Sesje 5. Przykład - dodawanie towaru

Bardziej szczegółowo

Model OSI/ISO. Komputer B. Warstwy w modelu OSI aplikacji. aplikacji. prezentacji Komputer A. prezentacji. sesji. sesji. komunikacja wirtualna

Model OSI/ISO. Komputer B. Warstwy w modelu OSI aplikacji. aplikacji. prezentacji Komputer A. prezentacji. sesji. sesji. komunikacja wirtualna 1 Plan wykładu 1. Model ISO/OSI warstwy modelu OSI transmisja w modelu OSI 2. Model TCP/IP protokół UDP protokół TCP 3. Połączenie i rozłączenie w TCP 4. Programowanie z wykorzystaniem gniazd. 2 Model

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Proxy (pełnomocnik) Cel: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Zastosowanie: Wszędzie tam, gdzie oczekujemy bardziej zaawansowanego odwołania do obiektu, niż zwykły

Bardziej szczegółowo

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1 Komunikacja międzyprocesowa Krzysztof Banaś Systemy rozproszone 1 Komunikacja międzyprocesowa Dla funkcjonowania systemów rozproszonych konieczna jest sprawna komunikacja pomiędzy odległymi procesami Podstawowym

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Wykorzystywanie parsera DOM w programach Java i PL/SQL Wykorzystywanie parsera DOM w programach Java i PL/SQL Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Parser DOM Aplikacja DOM API Parser DOM Dokument XML Drzewo DOM Parser

Bardziej szczegółowo

Sieci komputerowe. Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008. Michał Cieśla

Sieci komputerowe. Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008. Michał Cieśla Sieci komputerowe Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008 Michał Cieśla pok. 440a, email: ciesla@if.uj.edu.pl konsultacje: wtorki 10-12 http://users.uj.edu.pl/~ciesla/

Bardziej szczegółowo

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący Zarządzanie w sieci Protokół Internet Control Message Protocol Protokół sterujący informacje o błędach np. przeznaczenie nieosiągalne, informacje sterujące np. przekierunkowanie, informacje pomocnicze

Bardziej szczegółowo

Instrukcja do instalacji/aktualizacji systemu KS-FKW

Instrukcja do instalacji/aktualizacji systemu KS-FKW Instrukcja do instalacji/aktualizacji systemu KS-FKW System KS-FKW składa się z - bazy danych, schemat KS - część dla danych wspólnych dla programów KAMSOFT - bazy danych, schemat FK (lub FKxxxx w zaleŝności

Bardziej szczegółowo

4 C#. Tworzenie aplikacji sieciowych. 101 gotowych projektów

4 C#. Tworzenie aplikacji sieciowych. 101 gotowych projektów Wstęp... 7 Rozdział 1. Język C# i platforma.net... 9 Technologia.NET. Krótki wstęp... 9 Elementy języka C# i programowanie zorientowane obiektowo... 10 Przestrzenie nazw... 13 Kolekcje... 14 Zdarzenia

Bardziej szczegółowo

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

1. W protokole http w ogólnym przypadku elementy odpowiedzi mają: a) Postać tekstu b) Postać HTML c) Zarówno a i b 2. W usłudze DNS odpowiedź 1. W protokole http w ogólnym przypadku elementy odpowiedzi mają: a) Postać tekstu b) Postać HTML c) Zarówno a i b 2. W usłudze DNS odpowiedź autorytatywna dotycząca hosta pochodzi od serwera: a) do którego

Bardziej szczegółowo

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1 Języki i Techniki Programowania II Wykład 7 Współbieżność 1 Programy, Procesy, Wątki Program to zestaw instrukcji do wykonania, dane do przetworzenia, mechanizmy sterujące (stos) Proces w komputerze to

Bardziej szczegółowo

Ćwiczenie 9 - Zaawansowane metody programowania w sieci komputerowej

Ćwiczenie 9 - Zaawansowane metody programowania w sieci komputerowej Ćwiczenie 9 - Zaawansowane metody programowania w sieci komputerowej Bezpieczne gniazda Poufna komunikacja przez otwarte medium, takie jak Internet, która ma uniemożliwiać podsłuch, bezwzględnie wymaga

Bardziej szczegółowo

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne

Bardziej szczegółowo

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo

Katalog książek cz. 2

Katalog książek cz. 2 Katalog książek cz. 2 Odczytywanie danych z XML Do ćwiczenia dołączony jest plik books.xml zawierający pełen katalog książek. Poniższy listing zawiera przykładowy fragment danych w stosowanym formacie.

Bardziej szczegółowo

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol) Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol) W latach 1973-78 Agencja DARPA i Stanford University opracowały dwa wzajemnie uzupełniające się protokoły: połączeniowy TCP

Bardziej szczegółowo

Instrukcja Instalacji i konfiguracji CELINA (e-podpis)

Instrukcja Instalacji i konfiguracji CELINA (e-podpis) Instrukcja Instalacji i konfiguracji CELINA (e-podpis) 1. Informacje ogólne Moduł CELINA (e-podpis) jest częścią systemu Fraktal Studio Celne. Moduł słuŝy obsługi spraw przywozowych zgłaszanych do systemu

Bardziej szczegółowo

Bezpieczne uruchamianie apletów wg

Bezpieczne uruchamianie apletów wg Bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/security1.2/ Zabezpieczenia przed uruchamianiem apletów na pisanych przez nieznanych autorów 1) ograniczenie możliwości odczytywania,

Bardziej szczegółowo

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta Sieci komputerowe 1 Sieci komputerowe 2 Skąd dostać adres? Metody uzyskiwania adresów IP Część sieciowa Jeśli nie jesteśmy dołączeni do Internetu wyssany z palca. W przeciwnym przypadku numer sieci dostajemy

Bardziej szczegółowo

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

Laboratorium podstaw telekomunikacji

Laboratorium podstaw telekomunikacji Laboratorium podstaw telekomunikacji Temat: Pomiar przepustowości łączy w sieciach komputerowych i podstawowe narzędzia sieciowe. Cel: Celem ćwiczenia jest przybliżenie studentom prostej metody pomiaru

Bardziej szczegółowo

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run(). Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public

Bardziej szczegółowo

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM. VPN / OpenVPN

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM. VPN / OpenVPN INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM VPN / OpenVPN 1. Czym jest VPN? VPN (ang. Virtual Private Network, Wirtualna Sieć Prywatna), można opisać jako tunel, przez który płynie ruch w ramach sieci prywatnej

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Sieci VPN SSL czy IPSec?

Sieci VPN SSL czy IPSec? Sieci VPN SSL czy IPSec? Powody zastosowania sieci VPN: Geograficzne rozproszenie oraz duŝa mobilność pracowników i klientów przedsiębiorstw i instytucji, Konieczność przesyłania przez Internet danych

Bardziej szczegółowo

Java, bazy danych i SSL

Java, bazy danych i SSL Java, bazy danych i SSL 1. MySQL: własności połączenia, transmisja z wykorzystaniem SSL. 2. Własne programy wykorzystujące SSL. 3. RMI i SSL - implementacja własnych wersji klas ServerSocket i Socket.

Bardziej szczegółowo

[ Programowe tunelowanie połączeń TCP. ]

[ Programowe tunelowanie połączeń TCP. ] [ Programowe tunelowanie połączeń TCP. ] Autor: Krystian Kloskowski (h07) -http://milw0rm.com/author/668 -http://www.h07.int.pl 0x00 [INTRO] Art ten jak zwykle kierowany jest do osób,

Bardziej szczegółowo

Język Java wątki (streszczenie)

Język Java wątki (streszczenie) Programowanie współbieżna Język Java wątki (streszczenie) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Języka Java wątki Autor:

Bardziej szczegółowo

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1 Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego

Bardziej szczegółowo

SOAP. Autor: Piotr Sobczak

SOAP. Autor: Piotr Sobczak SOAP Autor: Piotr Sobczak AGENDA: Trochę o Web Services Wprowadzenie do SOAP Anatomia komunikatu SOAP Wysyłanie i otrzymywanie komunikatu SOAP oraz API Javy w przykładach SOAP z załącznikami SOAP-RPC Obsługa

Bardziej szczegółowo