Programowanie sieciowe
|
|
- Mieczysław Przybylski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Programowanie sieciowe Wykład 4: Java sieciowa mgr inŝ. Paweł Kośla mgr Marcin Raniszewski Łódź,
2 Plan wykładu Przegląd java.net InetAddress URL Socket klient TCP ServerSocket serwer TCP 2
3 Literatura dodatkowa Opis klas z pakietu java.net klasy uŝyteczne w programowaniu sieciowym: 3
4 Wprowadzenie Tworzenie programów działających w sieciach było głównym powodem powstania języka Java. Java dostarcza wiele mechanizmów wysokiego poziomu do programowania sieciowego. Podstawowe klasy połączeń (adresowania): InetAddress, URL oraz pochodne URL Do programowania połączeń opartych na protokole TCP: Socket ServerSocket Opartych na UDP: DatagramSocket DatagramPacket Wiele innych klas, interfejsów, oraz wyjątków. 4
5 Klasa InetAddress Opisuje adres komputera w sieci poprzez: Nazwę/domenę np. Numer IP, np WaŜniejszy jest numer IP, w przypadku uŝywania nazwy - tłumaczona ona jest na adres IP. Wybrane metody: public static InetAddress getbyname(string host) throws UnknownHostException public static InetAddress getbyaddress(byte[] addr) throws UnknownHostException public static InetAddress[] getallbyname(string host) throws UnknownHostException public static InetAddress getlocalhost() throws UnknownHostException public boolean ismulticastaddress() public boolean issitelocaladdress() public String gethostname() public byte[] getaddress() public String gethostaddress() public int hashcode() public boolean equals(object obj) public String tostring() 5
6 Klasa InetAddress Brak publicznych konstruktorów. Do tworzenia nowych obiektów uŝywamy metod statycznych. NaleŜy zapewnić obsługę wyjątku UnknownHostException, który powstaje w przypadku braku identyfikacji komputera o podanej nazwie lub adresie. Aby stworzyć obiekt przechowujący adres komputera wykorzystujemy metodę getbyname(string host) try { InetAddress zly = InetAddress.getByName("zly.kis.p.lodz.pl"); InetAddress poli = InetAddress.getByName(" "); catch (UnknownHostException e) { System.err.println(e); 6
7 Klasa InetAddress Lub metodę getbyaddress(byte[] addr), przyjmującą adres IP w postaci tablicy, a nie w postaci łańcucha znaków jak poprzednio try { byte ip[] = {(byte)212, (byte)51, (byte)207, (byte)68; InetAddress poli = InetAddress.getByAddress(ip); catch (UnknownHostException e) { System.err.println(e); 7
8 Klasa InetAddress Niektóre hosty (te, które maja wiele kart sieciowych) pod jedna nazwą mogą mieć wiele adresów IP. Tablicę obiektów reprezentujących adresy hosta uzyskujemy dzięki metodzie getallbyname(string host) try { InetAddress[] addresses = InetAddress.getAllByName("dom1"); for (int i = 0; i < addresses.length; i++) { System.out.println(addresses[i]); catch (UnknownHostException e) { System.out.println(e); dom1/ dom1/ dom1/
9 Klasa InetAddress Do stworzenia obiektu reprezentującego adres komputera lokalnego, na którym uruchomiony zostaje program słuŝy metoda getlocalhost() try { InetAddress me = InetAddress.getLocalHost(); System.out.println(me); catch (UnknownHostException e) { System.err.println(e); dom1/
10 Klasa InetAddress Z obiektu klasy InetAddress moŝemy "wyciągnąć" informacje o hoście Metoda tostring() formatuje informacje do łańcucha znaków w sposób: "nazwa hosta" / "numer IP" Wywoływana automatycznie przy metodzie System.out.println() InetAddress me = InetAddress.getLocalHost(); System.out.println(me); System.out.println(me.toString()); //to samo dom1/ dom1/ MoŜna pobrać takŝe nazwę hosta w postaci ciągu znaków, adres IP jako ciąg znaków oraz adres IP jako tablicę bajtów. SłuŜą do tego kolejno: public String gethostname() public byte[] getaddress() public String gethostaddress() 10
11 Klasa InetAddress Informacje o obiekcie klasy InetAddress try { InetAddress poli = InetAddress.getByName(" "); System.out.println("Nazwa hosta: " + poli.gethostname()); System.out.println("Numer IP: " + poli.gethostaddress()); byte[] address = poli.getaddress(); for (int i = 0; i < address.length; i++) { System.out.print((int)(address[i]&0xFF) + "."); System.out.println(); catch (UnknownHostException e) { Nazwa hosta: ck.p.lodz.pl System.err.println(e); Numer IP:
12 Klasa InetAddress Do sprawdzenia czy adres jest adresem grupowym (z klasy D) słuŝy metoda ismulticastaddress() InetAddress hst = InetAddress.getByName(" "); System.out.println(hst.isMulticastAddress()); true Czy obiekt klasy InetAddress zawiera adres lokalny (prywatny) sprawdzamy metodą issitelocaladdress() InetAddress hst = InetAddress.getByName(" "); System.out.println(me.isSiteLocalAddress()); true 12
13 Klasa URL Inną klasą wykorzystywaną w Javie do adresowania komputerów jest klasa URL oraz jej pochodne URLClassLoader, URLConnection, URLDecoder, URLEncoder, URLStreamHandler. URL jest skrótem od "Uniform Resource Locator", pozwalającym identyfikować lokalizację zasobów w Internecie. Tworząc obiekt klasy URL otrzymujemy gotowy wskaźnik, który jest wykorzystywany przez liczne metody Javy (np. otwieranie obrazka getimage(), tworzenie połączenia w JDBC - Connection). 13
14 Klasa URL Pełny URL składa się z pięciu fragmentów, choć nie wszystkie one są wymagane: protokół host port plik identyfikator fragmentu (np. ref, section, anchor) ciąg zapytania (query) Przykładowe URL: file://dom1/ps/wyklad/ps5.ppt ftp://ftp.info.apple.com/pub/ mailto:pkosla@kis.p.lodz.pl telnet://cyberspace.org 14
15 Klasa URL Istnieją konstruktory, które pozwalają tworzyć URL na podstawie róŝnych fragmentów, jak równieŝ metody do parsowania róŝnych części URL. Metody, które na podstawie URL pozwalają uzyskać InputStream, za pośrednictwem którego moŝna pozyskiwać dane z serwera. Klasa URL hermetyzuje cały ten proces, dzięki czemu uŝytkownik nie musi zajmować się problemami związanymi z obsługą protokołu czyta tylko ze strumienia. Kiedy tworzony jest obiekt URL, Java szuka obsługi protokołu, która rozumie część deklaracji URL dotyczącą protokołu, jak "http" lub "mailto". Jeśli Ŝadna obsługa nie zostanie znaleziona, konstruktor zwraca wyjątek MalformedURLException Rozpoznawane protokoły: - file, ftp, http, - gopher, mailto, - appletresource, doc, netdoc, systemresource, verbatim (stworzone przez Sun, uŝywane wewnętrznie w JDK) Uwaga: większe moŝliwości od klasy java.net.url ma klasa java.net.urlconnection. 15
16 Klasa URL tworzenie Istnieje kilka konstruktorów m.in.: public URL(String u) throws MalformedURLException public URL(String protocol, String host, String file) throws MalformedURLException public URL(String protocol, String host, int port, String file) throws MalformedURLException public URL(URL context, String u) throws MalformedURLException Mając pełny URL, typu: moŝna utworzyć odpowiadający mu obiekt: try { URL u = new URL(" catch (MalformedURLException e) { 16
17 Klasa URL tworzenie MoŜna teŝ utworzyć URL przekazując części ciągu do konstruktora: try{ URL u = new URL("http"," catch (MalformedURLException e){ Zazwyczaj nie definiuje się portu dla URL, gdyŝ większość protokołów uŝywa portów domyślnych (http - port 80). Jeśli jest taka potrzeba: try{ URL u = new URL("http"," catch (MalformedURLException e){ 17
18 Klasa URL tworzenie Wiele plików HTML zawiera URL zdefiniowany relatywnie (są przydatne przy tworzeniu "mobilnych" stron) Relatywne odnośniki dziedziczą host, port, protokół oraz czasem katalog bieŝący strony. Link teach.html na stronie będzie odnośnikiem do Do tworzenia relatywnych URL przy danym bezwzględnym URL słuŝy konstruktor: try { URL u1 = new URL(" URL u2 = new URL(u1, "teach.html"); catch (MalformedURLException e) { 18
19 Klasa URL parsowanie Dostępne są metody do wyłuskania poszczególnych składowych URL: public String getprotocol() public String gethost() public int getport() public int getdefaultport() public String getfile() public String getpath() public String getref() public String getquery() Jeśli port nie jest jawnie wyspecyfikowany w URL, to jest on ustawiany na wartość -1. (uŝyty zostanie port domyślny) Jeśli ref lub query nie istnieje, to zwraca null 19
20 Klasa URL parsowanie Przykład: try { URL u = new URL(" System.out.println("protocol: " + u.getprotocol()); System.out.println("host: " + u.gethost()); System.out.println("port: " + u.getport()); System.out.println("defaultport: " + u.getdefaultport()); System.out.println("file: " + u.getfile()); System.out.println("path: " + u.getpath()); System.out.println("ref: " + u.getref()); System.out.println("query: " + u.getquery()); catch (MalformedURLException ex) { protocol: http host: port: -1 defaultport: 80 file: /search?hl=pl&q=java&lr= path: /search ref: top query: hl=pl&q=java&lr= 20
21 Klasa URL odczyt danych Do otwarcia połączenia z serwerem wyspecyfikowanym w URL oraz utworzenia strumienia InputStream zasilanego danymi z tego połączenia słuŝy metoda : public final InputStream openstream() throws IOException Dane z serwera ściąga się poprzez otwarty strumień. Strumień zawiera tylko czyste, surowe dane (nie przejmujemy się nagłówkami pakietów) Aby odczytać coś ze strumienia korzysta się z metod klas z pakiety java.io. Istotnym jest buforowanie, przez BufferedInputStream lub BufferedReader. 21
22 Klasa URL odczyt danych Przykład kodu wyświetlającego wskazaną stronę www na konsoli: try{ URL u = new URL(" InputStream is = u.openstream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String theline; while ((theline = br.readline())!= null) { System.out.println(theLine); catch (MalformedURLException e){ System.err.println(e); catch (IOException e){ System.err.println(e); <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- saved from url=(0033) --> <HTML><HEAD><TITLE>Pawel Kosla KIS</TITLE> <META http-equiv=content-type content="text/html; charset=iso "> <META http-equiv=content-language content=pl>... 22
23 Klient TCP Gniazda klienckie pozwalają na wykonywanie operacji otwierania połączeń z odległymi komputerami, wysyłania i odbierania danych oraz zamykania połączeń. Klasa Socket wysoki poziom programowania. Przesył danych strumieniowych. Dwukierunkowa łączność: sekwencyjnie read write read write read write read write blokowo read read read write write write read read wątki read write read write read write read write write read write Host 1 Host 1 23
24 Klient TCP Schemat blokowy aplikacji: open Socket() connect read write open tworzy gniazdo klienckie connect łączy stworzone gniazdo ze zdalnym hostem (zdalnym gniazdem) read pobiera dane ze strumienia otwartego połączenia write wysyła dane close zamyka połączenie close 24
25 Klient TCP Modyfikacje schematu: open connect open connect read write wątek read write wątek close close synchroniczny transfer asynchroniczny transfer 25
26 Klient TCP nawiązywanie połączeń Do nawiązywania połączenia ze zdalnym hostem słuŝy konstruktor gniazda. KaŜdy obiekt typu Socket jest związany dokładnie z jednym zdalnym hostem. Aby połączyć się z innym hostem, naleŝy utworzyć nowy obiekt typu Socket. Aby utworzyć obiekt typu Socket naleŝy co najmniej wyspecyfikować zdalnego hosta oraz numer portu, z którym chce się utworzyć połączenie. w postaci nazwy hosta: public Socket(String host, int port) throws UnknownHostException, IOException lub obiektu InetAddress: public Socket(InetAddress address, int port) throws IOException 26
27 Klient TCP nawiązywanie połączeń W przypadku wielu lokalnych adresów moŝemy wskazać takŝe z którego będziemy się łączyć. public Socket(String host, int port, InetAddress localaddr, int localport) throws IOException public Socket(InetAddress address, int port, InetAddress localaddr, int localport) throws IOException Wskazać moŝemy takŝe numer portu z którego będziemy się łączyć tradycyjnie numer ten przydzielany jest dynamicznie >1024 (poprzednie konstruktory) NaleŜy uwaŝać, w danej chwili na jednym porcie moŝe być realizowane tylko jedno połączenie. Dynamiczne wybieranie wolnego portu przez system realizujemy przez wartość portu 0. Przykład: Socket("zly.kis.p.lodz.pl", 21, " ", 0); 27
28 Klient TCP nawiązywanie połączeń Prosty program nawiązujący połączenie ze zdalnym hostem. import java.net.*; import java.io.*; /** * Przyklad klienta nawiazujacego polaczenie sieciowe TCP */ public class Klient { public static void main(string[] args) { try { Socket gniazdo = new Socket("zly.kis.p.lodz.pl", 21); System.out.println("Nawiazano polaczenie"); gniazdo.close(); catch(ioexception e){ System.out.println("Podczas proby nawiazania polaczenia wystapil blad" + e); 28
29 Klient TCP nawiązywanie połączeń Konstruktory mogą zwrócić wyjątki, konieczne jest zapewnienie ich obsługi. Ogólnie jest to klasa wyjątków IOException Przydatne są bardziej szczegółowe informacje niŝ te które dostarcza IOException. Do dyspozycji mamy klasę wyjątków związanych z gniazdem SocketException, która zawiera: ConnectException połączenie odrzucone, np. Ŝaden proces nie nasłuchuje na danym porcie na zdalnym hoście NoRouteToHostException host niedostępny, np. jest za firewallem PortUnreachableException nieosiągalny port W przypadku konstruktorów z hostem identyfikowanym jako String naleŝy dodatkowo obsłuŝyć wyjątek UnknownHostException (niejawnie wywołana metoda gethostbyname() ) 29
30 Klient TCP nawiązywanie połączeń Szczegółowa obsługa wyjątków: try { Socket gniazdo = new Socket("zly.kis.p.lodz.pl", 21); System.out.println("Nawiazano polaczenie"); gniazdo.close(); catch(unknownhostexception e){ System.out.println("komputer nie jest znany"); catch(noroutetohostexception e){ System.out.println("komputer jest niedostepny"); catch(connectexception e){ System.out.println("komputer odrzucil polaczenie"); catch(ioexception e){ System.out.println("Podczas proby nawiazania polaczenia wystapil blad" + e); 30
31 Klient TCP info o połączeniu gniazdo lokalne gniazdo zdalne Obiekt klasy Socket dostarcza informacji o gnieździe lokalnym i zdalnym Obiekt InetAddress do którego się podłączyliśmy i z którego się łączymy moŝemy pobrać metodami: public InetAddress public InetAddress getinetaddress() getlocaladdress() Numery portów połączenia na zdalnym i lokalnym gnieździe: public int public int getport() getlocalport() getlocalport() przydatne do sprawdzenia który port został dynamicznie wybrany przez klienta. Metoda tostring() zwraca informacje o gnieździe w postaci łańcucha znakowego, np.: Socket[addr=zly.kis.p.lodz.pl/ ,port=21,localport=1116] 31
32 Klient TCP info o połączeniu Odczyt informacji o gnieździe try { Socket gniazdo = new Socket("zly.kis.p.lodz.pl", 21); System.out.println("Nawiazano polaczenie"); System.out.println(gniazdo); System.out.println("Dynamicznie wybrany port lokalny: " + gniazdo.getlocalport()); gniazdo.close(); catch(ioexception e){ System.out.println("Podczas proby nawiazania polaczenia wystapil blad" + e); Nawiazano polaczenie Socket[addr=zly.kis.p.lodz.pl/ ,port=21,localport=1115] Dynamicznie wybrany port lokalny:
33 Klient TCP skaner portów Nie moŝna połączyć się ze zdalnym hostem na dowolnym porcie. Aby połączenie doszło do skutku zdalny host musi nasłuchiwać na danym porcie. Do określenia, na którym porcie zdalny host nasłuchuje moŝna wykorzystać konstruktor Socket import java.net.*; import java.io.*; public class Klient { public static void main(string[] args) { for (int port = 0; port < 65536; port++) { try { Socket s = new Socket("localhost", port); System.out.println("Serwer ma otwarty port: " + port); s.close(); catch (IOException e) { System.out.println("zamkniety port: " + port); Uwaga: Skanowanie portów moŝe być zinterpretowane jako próba ataku na zdalny serwer. 33
34 Klient TCP odczyt i zapis danych Po nawiązaniu połączenia przesyłamy i odbieramy dane Metody odbierające dane są metodami blokującymi (czekają aŝ pojawią się dane w strumieniu) Rodzaje danych: - tekstowe - binarne - dane serializowane (obiekty) Obiekty InputStream, OutputStream reprezentują strumienie wejściowe i wyjściowe połączenia sieciowego. Do wydobycia tych strumieni słuŝą metody klasy Socket: public InputStream getinputstream() throws IOException public OutputStream getoutputstream() throws IOException 34
35 Klient TCP dane tekstowe Analogia do czytania z plików, z klawiatury, z URL. Przejście ze strumienia do treści przesyłanej za pomocą klas konwertujących. InputStream is = gniazdo.getinputstream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); InputStreamReader - strumień przekształcający bajtowy strumień w strumień znaków BufferedReader - strumień buforujący dane i umoŝliwiający czytanie danych porcjami. W przypadku klawiatury: InputStream is = System.in; 35
36 Klient TCP dane tekstowe Klasa BufferedReader udostępnia następujące metody wczytujące: public int read() throws IOException Czyta pojedynczy znak ze strumienia. Zwraca go w postaci int. W przypadku napotkania końca strumienia zwraca -1. public int read(char[] cbuf, int off, int len) throws IOException Wczytuje porcje znaków (len) do tablicy (cbuf) z określonego miejsca ze strumienia (off). Zwraca ilość wczytanych znaków lub -1 w przypadku końca strumeinia public String readline() throws IOException Wczytuje linię tekstu zakończoną '\n' lub '\r' 36
37 Klient TCP dane tekstowe,daytime Zastosowanie do usługi DayTime. Serwer czasu, po połączeniu się z nim na porcie 13 wysyła datę w postaci łańcucha znaków. Usługę udostępniają np. vega.cbk.poznan.pl lub ntp.task.gda.pl Data podawana jest w postaci: Sat Mar 8 14:47:
38 Klient TCP dane tekstowe,daytime import java.net.*; import java.io.*; public class DayTime{ public static void main(string[] args) { String hostname; if(args.length == 0) hostname = "localhost"; else hostname = args[0]; try{ Socket gniazdo = new Socket(hostName,13); InputStream is = gniazdo.getinputstream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String czas = br.readline(); System.out.println("czas na komputerze " + hostname + " to " + czas); catch(ioexception e){ System.out.println(e); >java DayTime vega.cbk.poznan.pl czas na komputerze vega.cbk.poznan.pl to Thu Mar 4 14:53:
39 Klient TCP dane tekstowe Zapis danych następuje podobnie. OutpuStream os = gniazdo.getoutputstream(); PrintWriter pw = new PrintWriter(os, true); Klasa PrintWriter udostępnia metodę zapisu print(...) przyjmującą argumenty w postaci liczb lub łańcuchów String. PoniewaŜ println(...) w tym przypadku nie dodaje znaczników końca wiersza, musimy sami się tym zaopiekować: pw.print("tekst" + "\r\n"); MoŜemy takŝe pisać bezpośrednio do obiektu OutputStream. Dostępne mamy tam metody: public void write(byte[] b) throws IOException Zapisuje b.length bajtów z tablicy bajtowej do strumienia wyjściowego. public void write(byte[] b, int off, int len) throws IOException Zapisuje len bajtów z tablicy bajtowej, zaczynając od pozycji off do strumienia wyjściowego. 39
40 Klient TCP dane tekstowe, echo Podstawa echo import java.net.*; import java.io.*; public class Start{ String msg = "to jest wiadomosc"; public static void main(string[] args) { Start me = new Start(); me.echo("localhost"); public void echo(string host){ try{ Socket sock = new Socket(host, 7); BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream())); PrintWriter out = new PrintWriter(sock.getOutputStream()); out.print(msg + "\r\n"); out.flush(); String reply = in.readline(); System.out.println("wyslano \"" + msg + "\""); System.out.println("odebrano \"" + reply + "\""); sock.close(); catch(ioexception e){ System.out.println("Blad "+e); flush() powoduje wysłanie zawartości bufora w sieć!! 40
41 Klient TCP dane binarne Jeśli chcemy przekazywać dane binarne musimy utworzyć obiekty klas DataInputStream oraz DataOutputStream. Najprostszy sposób: DataInputStream in = new DataInputStream(gniazdo.getInputStream()); DataOutputStream out = new DataOutputStream(gniazdo.getOutputStream()); Jeśli ilość danych przekazywanych moŝe być duŝa, warto wykorzystać strumienie buforowane: DataInputStream in = new DataInputStream( new BufferedInputStream(gniazdo.getInputStream())); DataOutputStream out = new DataOutputStream( new BufferedOutputStream(gniazdo.getOutputStream())); 41
42 Klient TCP dane binarne Wśród metod powyŝszych klas są następujące: public final boolean readboolean() throws IOException public final byte readbyte() throws IOException public final int readunsignedbyte() throws IOException! public final short readshort() throws IOException public final int readunsignedshort() throws IOException! public final char readchar() throws IOException public final int readint() throws IOException public final long readlong() throws IOException public final float readfloat() throws IOException public final double readdouble() throws IOException public final void writeboolean(boolean v) throws IOException public final void writebyte(int v) throws IOException! public final void writeshort(int v) throws IOException! public final void writechar(int v) throws IOException! public final void writeint(int v) throws IOException public final void writelong(long v) throws IOException public final void writefloat(float v) throws IOException public final void writedouble(double v) throws IOException 42
43 Klient TCP dane binarne Fragment kodu programu odbierającego liczbę int z hosta zdalnego Serwer po połączeniu wysyła liczbę int. try{ Socket sock = new Socket(" ",10); DataInputStream in = new DataInputStream( new BufferedInputStream(sock.getInputStream())); int liczba = in.readint(); System.out.println("odebralem liczbe: " + liczba); sock.close(); catch(ioexception e){ System.out.println("Blad "+e); 43
44 Klient TCP dane serializowane Serializacja obiektów to moŝliwość skonwertowania obiektów przechowywanych w pamięci komputera do zewnętrznej postaci, którą moŝna wysłać w sposób szeregowy. Jeśli chcemy przekazywać obiekty musimy utworzyć obiekty klas ObjectInputStream oraz ObjectOutputStream. Analogicznie jak poprzednio: Socket gniazdo = new Socket(" ",1050); ObjectInputStream in = new ObjectInputStream( new BufferedInputStream(gniazdo.getInputStream())); ObjectOutputStream out = new ObjectOutputStream( new BufferedOutputStream(gniazdo.getOutputStream())); NajwaŜniejszymi metodami tych klas są odpowiednio: public final Object readobject() throws IOException, ClassNotFoundException public final void writeobject(object obj) throws IOException Klasy te mają takŝe metody znane z obsługi danych binarnych. readint(), writefloat(float v)... 44
45 Klient TCP dane serializowane Przykład klienta TCP odbierającego obiekt klasy Date Serwer wysyła obiekt klasy Date zawierający aktualna datę serwera import java.net.*; import java.io.*; import java.util.*; public class Klient { public static void main(string[] args) { try{ Socket sock = new Socket(" ",10); ObjectInputStream in = new ObjectInputStream( new BufferedInputStream(sock.getInputStream())); Object ob = in.readobject(); if(ob == null) { System.out.println("Serwer przeslal null"); else if (ob instanceof Date) { Date d = (Date)ob; System.out.println("data: " + d); else{ throw new ClassNotFoundException("oczekiwano daty, odebrano obiekt klasy "+ob); sock.close(); catch(classnotfoundexception e) { System.out.println(e); catch(ioexception e) { System.out.println("Blad "+e); data: Thu Mar 16 18:25:10 CET
46 Klient TCP - podsumowanie Aby mieć moŝliwość wysyłania i odbierania danych najpierw naleŝy połączyć się ze zdalnym hostem (serwerem). Dane przesyłamy strumieniowo. MoŜna przesyłać łańcuchy tekstowe, dane binarne (np. liczby) oraz obiekty. Dane przesyłane będą wiarygodnie. 46
STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW
STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW 1. Procedura korzystania ze strumieni danych Aby utworzyć plik: 1) Należy utworzyć obiekt (np. typu FileOutputStream), powiązany ze plikiem danych binarnych (np.
Bardziej szczegółowoProgramowanie 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ółowoProgramy 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ółowoPlatformy Programistyczne Zagadnienia sieciowe i wątki
Platformy Programistyczne Zagadnienia sieciowe i wątki Agata Migalska 27/28 maja 2014 Komunikacja sieciowa 1 Komunikacja sieciowa 2 Wiele wątków 3 Serializacja Architektura typu klient-serwer Architektura
Bardziej szczegółowoAdresy URL. Zaawansowane technologie Javy 2019
Adresy URL Zaawansowane technologie Javy 2019 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
Bardziej szczegółowoProgramowanie sieciowe
Programowanie sieciowe Wykład 5: Java sieciowa cd. mgr inŝ. Paweł Kośla mgr Marcin Raniszewski Łódź, 2009 1 Plan wykładu ServerSocket serwer TCP DatagramSocket i DatagramPacket UDP FTP 2 Serwer TCP Gniazdo
Bardziej szczegółowoWykład 2. Strumienie tekstowe (wprowadzanie danych z klawiatury) i bajtowe, otwieranie strumieni poprzez sieć - obiekty URL
Wykład 2 Strumienie tekstowe (wprowadzanie danych z klawiatury) i bajtowe, otwieranie strumieni poprzez sieć - obiekty URL 1. Procedura korzystania ze strumieni tekstowych wejściowych powiązanych ze standardowym
Bardziej szczegółowoJAVA 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ółowoJava 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ółowoAplikacja 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ółowoURL. 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ółowoKurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016
Wykład 10 05 maja 2016 Biblioteka wejścia/wyjścia (Input/Output) import java.io.*; Umożliwia przechowywania danych na nośniku zewnętrznym Dane moga być wysyłane do plików, na drukarkę, do bufora pamięci,
Bardziej szczegółowoPrzykł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ółowoProgramowanie w języku Java
Programowanie w języku Java Wykład 4: Programowanie rozproszone: TCP/IP, URL. Programowanie sieciowe w Javie proste programowanie sieciowe (java.net) na poziomie UDP na poziomie IP na poziomie URL JDBC
Bardziej szczegółowoProgramowanie 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ółowoStrumienie tekstowe (wprowadzanie danych z klawiatury) i bajtowe, otwieranie strumieni przez sieć - obiekty URL
Strumienie tekstowe (wprowadzanie danych z klawiatury) i bajtowe, otwieranie strumieni przez sieć - obiekty URL Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1 1. Strumienie
Bardziej szczegółowoJęzyki i metody programowania Java INF302W Wykład 4
Języki i metody programowania Java INF302W Wykład 4 Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Strumienie binarne i tekstowe niebuforowane i buforowane, obsługa plików tekstowych, wprowadzanie
Bardziej szczegółowoKomunikacja 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ółowoKOMUNIKACJA MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA
Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika KOMUNIKACJA MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Komunikacja
Bardziej szczegółowoSTRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE
STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE 1) Strumienie tekstowe wejściowe wprowadzanie danych Procedura korzystania ze strumieni tekstowych wejściowych
Bardziej szczegółowoNetworking. Zaawansowane technologie Javy 2019
Networking Zaawansowane technologie Javy 2019 Model klient-serwer W modelu klient-serwer (ang. client-server) dane trzymane są na serwerze, interfejs użytkownika i logika przetwarzania danych są realizowane
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
Bardziej szczegółowoAplikacje RMI. Budowa aplikacji rozproszonych. Część 2.
Aplikacje RMI Część 2 Budowa aplikacji rozproszonych http://java.sun.com/j2se/1.5.0/docs/guide/rmi/socketfactory/index.html I. Implementacja gniazd dziedziczących po Socket i ServerSocket oraz produkcji
Bardziej szczegółowoJę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ółowoK O M U N I K A C J A MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA
Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika K O M U N I K A C J A MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska
Bardziej szczegółowoStrumienie 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ółowoObiekty sieciowe - gniazda Komputery w sieci Internet komunikują się ze sobą poprzez:
Obiekty sieciowe - gniazda Komputery w sieci Internet komunikują się ze sobą poprzez: TCP (Transport Control Protocol) User Datagram Protocol (UDP). TCP/IP (IP - Iternet Protocol) jest warstwowym zestawem
Bardziej szczegółowoZadanie 2: transakcyjny protokół SKJ (2015)
Zadanie 2: transakcyjny protokół SKJ (2015) 1 Wstęp Zadanie polega na zaprojektowaniu niezawodnego protokołu transakcyjnego bazującego na protokole UDP. Protokół ten ma być realizowany przez klasy implementujące
Bardziej szczegółowoAplikacja 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ółowoJava a dost p do Internetu.
Java a dost p do Internetu. Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 20.04.2017 Java a dost p do Internetu Java Networking - jest koncepcj
Bardziej szczegółowoJava 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ółowoMetody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany
Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany plik. boolean exists() sprawdza czy plik o zadanej nazwie
Bardziej szczegółowoWykład 7 Tworzenie łącz w apletach, wątki, serializacja obiektów, gniazda
Wykład 7 Tworzenie łącz w apletach, wątki, serializacja obiektów, gniazda 1.Tworzenie łącz w apletach W pliku html zastosowano znacznik PARAM z abutami: name oraz value
Bardziej szczegółowoPodstawowe 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ółowoJava 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ółowoJAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt
JAVA Pliki - zapis i odczyt Opracował: Andrzej Nowak Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Strumienie wejścia i wyjścia Strumienie wejścia
Bardziej szczegółowoGniazda komunikacji sieciowej w środowisku Java
Gniazda komunikacji sieciowej w środowisku Java Dariusz.Wawrzyniak@cs.put.poznan.pl 1 Obsługa gniazd 2 Obsługa komunikacji strumieniowej Obsługa komunikacji pakietowej Pakiet java.net Obsługa gniazd Pakiet
Bardziej szczegółowoWykład 10: Wejście i Wyjście
Wykład 10: Wejście i Wyjście Pakiet java.io. Wejście/Wyjście Program realizuje wejście/wyjście przez użycie potoku. Ten sam sposób obsługi różnych urządzeń: konsola klawiatura plik na dysku gniazdko sieciowe,
Bardziej szczegółowoSchemat 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ółowoProgramowanie 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ółowoBiblioteki wejścia/wyjścia. Strumienie we/wy (I/O)
Biblioteki wejścia/wyjścia Strumienie we/wy (I/O) Pojęcie strumienia Strumień reprezentuje źródło lub odbiorcę danych (obiekt zdolny odbierać lub produkować dane). Strumień ukrywa szczegóły związane z
Bardziej szczegółowoWykład 2: Podstawy Języka
Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście
Bardziej szczegółowoProgramowanie obiektowe
Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 9 Serializacja Przygotował: Jacek Sroka 2 Przypomnienie Abstrakcja strumienia hierarchia binarna InputStream/OutputStream hierarchia znakowa Reader/Writer
Bardziej szczegółowoPodstawy otwartych języków programowania Wyjątki i strumienie I/O
Podstawy otwartych języków programowania Wyjątki i strumienie I/O Wiktor Wandachowicz Wyjątki Podstawą filozofii Javy jest założenie, że: źle sformułowany kod nie zostanie wykonany Wyjątki są mechanizmem
Bardziej szczegółowoStrumienie, pliki. Sortowanie. Wyjątki.
Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy
Bardziej szczegółowosieć 4) Mechanizm RMI jest zazwyczaj wykorzystywany w rozwiązaniach typu klient-serwer.
RMI (Remote Method Invocation) zdalne wywołanie metod Część 1 1) RMI jest mechanizmem, który pozwala danej aplikacji: wywoływać metody obiektów zdalnych oraz uzyskać dostęp do obiektów zdalnych (np. w
Bardziej szczegółowoPrzykład. Podaj nazwę domenową hosta a odczytaj jego adres IP, lub odwrotnie:
Adres internetowy klasa wxipv4address - wymaga #include Najważniejsze metody: bool Hostname(const wxstring& hostname) ustawia nazwę domenową hosta lub adres IP w notacji kropki: a.b.c.d bool
Bardziej szczegółowoZdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu
Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja
Bardziej szczegółowoWywoł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ółowoJę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ółowoWszystkie 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ółowoOprogramowanie systemów równoległych i rozproszonych Wykład 7
Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie
Bardziej szczegółowoWykład 4: Wejście/wyjście: strumienie Java
PK1 2006_2018 Walery Susłow Programowanie komputerów Wykład 4: Wejście/wyjście: strumienie Java dr inż. Walery Susłow walery.suslow@tu.koszalin.pl Wejście/wyjście Podstawowy mechanizm wejścia-wyjścia znajduje
Bardziej szczegółowoKlient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Bardziej szczegółowoTworzenie 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ółowoProgramowanie 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ółowoWielową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ółowoWybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2017 APLIKACJE SIECIOWE Definicja Architektura aplikacji sieciowych Programowanie
Bardziej szczegółowoWywoływanie metod zdalnych
Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 11: Serializacja obiektów 5/19/2013 S.Deniziak:Programowanie obiektowe 1 Problem składowania/przesyłania danych Strumienie Tylko typy proste Konieczność ręcznego odtwarzania
Bardziej szczegółowoPodejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia
Bardziej szczegółowoJava RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoGniazda BSD implementacja w C#
BSD implementacja w C# Implementacja w C#: Przestrzeń nazw: System.Net.Sockets Klasa: public class Socket : IDisposable Implementacja w C#: Konstruktor: public Socket( AddressFamily addressfamily, SocketType
Bardziej szczegółowoRemote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoPodejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm
Bardziej szczegółowoSystemy Rozproszone - Ćwiczenie 6
Systemy Rozproszone - Ćwiczenie 6 1 Obiekty zdalne Celem ćwiczenia jest stworzenie obiektu zdalnego świadczącego prostą usługę nazewniczą. Nazwy i odpowiadające im punkty końcowe będą przechowywane przez
Bardziej szczegółowo1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);
1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania
Bardziej szczegółowoJava RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoSposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby
Bardziej szczegółowoĆ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ółowoKlasy 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ółowoKurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Bardziej szczegółowoProgramowanie 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ółowoSieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski
Sieci komputerowe Wykład 5: Warstwa transportowa: TCP i UDP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 5 1 / 22 Warstwa transportowa Cechy charakterystyczne:
Bardziej szczegółowoJava niezbędnik programisty spotkanie nr 11. Importy statyczne, wejście/wyjście, wyrażenia regularne, serializacja
Java niezbędnik programisty spotkanie nr 11 Importy statyczne, wejście/wyjście, wyrażenia regularne, serializacja 1 Importowanie składowych statycznych Opracował Import static java.lang.system.out; //import
Bardziej szczegółowoNarzę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ółowoRemote Method Invocation 17 listopada 2010
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoProgramowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]
Programowanie w Javie Lista nr 1 1. Jak uruchomić pierwszy program w Javie? Przykład przy wykorzystaniu NetBeans: File->New Project Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]
Bardziej szczegółowo1 Klasa File. 2 Writer. Programowanie w j zyku Java - Adam Krechowicz. Klasa File zapewnia podstawowe operacje na plikach
Programowanie w j zyku Java - Adam Krechowicz 1 Klasa File Klasa File zapewnia podstawowe operacje na plikach import java.io.file; public class FileTest { File f = new File("/home/adam/abc.txt"); f.createnewfile();
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Bardziej szczegółowoInformatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Bardziej szczegółowoWą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ółowoPODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne
Przykład 1 metody i atrybuty statyczne public class Napis1 { static String wynik; public static void Inicjuj() {wynik = ""; PODEJŚCIE OBIEKTOWE public static void Dopisz_do_wyniku(char ch) { wynik+="\nkod
Bardziej szczegółowoLaboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Bardziej szczegółowoĆ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ółowo76.Struktura oprogramowania rozproszonego.
76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie
Bardziej szczegółowoJAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Bardziej szczegółowoJava: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
Bardziej szczegółowoRemote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1
P d jś i bi kt d b d t ó Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java),wywiedziony idi z Remote obie kt aplikacja klie ncka interfe js serw
Bardziej szczegółowoKatedra 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ółowoakademia androida Składowanie danych część VI
akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.
Bardziej szczegółowoMATERIAŁY POMOCNICZE DO ĆWICZENIA 3 Klasy i obiekty; atrybuty i metody
MATERIAŁY POMOCNICZE DO ĆWICZENIA 3 Klasy i obiekty; atrybuty i metody Java jest językiem obiektowym. Wartości typów innych niż proste są obiektami określonych klas. Obiekty stanowią instancje klas, których
Bardziej szczegółowoJava. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Bardziej szczegółowoProgramowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy
Bardziej szczegółowoKomunikator 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ółowoMultimedia 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ółowoInynieria oprogramowania Lecture XXX. Java TM cz IV: IO. Bartosz Walter
Inynieria oprogramowania Lecture XXX Java TM cz IV: IO Bartosz Walter Plan Klasa java.io.file Strumienie tekstowe Strumienie standardowe Properties Wprowadzenie pakiet java.io.*;
Bardziej szczegółowo