Programowanie w języku Java

Podobne dokumenty
Java programowanie w sieci. java.net RMI

JAVA I SIECI. MATERIAŁY:

Przykłady interfejsu TCP i UDP w Javie

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielow tkowa prosty komunikator

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

Networking. Zaawansowane technologie Javy 2019

Java, bazy danych i SSL

Programowanie rozproszone w języku Java

Java programowanie sieciowe

Komunikacja z użyciem gniazd aplikacje klient-serwer

Programowanie aplikacji w architekturze Klient-Serwer - UDP

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

Obiekty sieciowe - gniazda Komputery w sieci Internet komunikują się ze sobą poprzez:

Połączenia między bazami danych i programem w języku Java część 2

Programowanie w języku Java. Bazy danych SQLite w Javie

Programowanie współbieżne i rozproszone

Ćwiczenie 9 - Zaawansowane metody programowania w sieci komputerowej

Java a dost p do Internetu.

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach

Serwer współbieżny połączeniowy

Bartosz Jachnik - Kino

Adresy URL. Zaawansowane technologie Javy 2019

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Java rozszerzenie. dr. A. Dawid

JAVA I BAZY DANYCH. MATERIAŁY:

Java Database Connectivity

Łukasz Przywarty Wrocław, r. Grupa: WT/N 11:15-14:00. Sprawozdanie z zajęć laboratoryjnych: OpenSSL - API

KOMUNIKACJA MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA

Wykład 7 Tworzenie łącz w apletach, wątki, serializacja obiektów, gniazda

Programowanie sieciowe

K O M U N I K A C J A MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA

Java. Programowanie Obiektowe Mateusz Cicheński

Podejście obiektowe do budowy systemów rozproszonych

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

JAVA bazy danych. na bazie: Język Java - Podstawy Programowania - Jacek Rumiński

Platformy Programistyczne Zagadnienia sieciowe i wątki

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

Remote Method Invocation

JDBC (Java Database Connectivity vit )

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Remote Method Invocation 17 listopada 2010

RESTful Android. Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Metody dostępu do danych

Wywoływanie metod zdalnych

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy.

Wywoływanie metod zdalnych

package pakieta; import pakietb.b; package pakietb; public class B { B(){} public class A { private B b; A(B b) { this.b = b; } }

JDBC - Obsługa baz danych w języku Java

Kontenery i komponenty graficzne

Wybrane działy Informatyki Stosowanej

URL. Budowa URL (ang. Uniform Resource Locator): working#downloading

Systemy Rozproszone - Ćwiczenie 6

Programowanie obiektowe

Zadanie 2: transakcyjny protokół SKJ (2015)

1. Co można powiedzieć o poniższym kodzie? public class A { void m(int a) { } int m(string s) { return Integer.parseInt(s); }

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);

Bezpieczne uruchamianie apletów wg

Aplikacje RMI

Przykłady ataków. Błąd dotyczy np. forów dyskusyjnych z możliwością umieszczania plików grafcznych. Pozwala to na wykonanie dowolnego żądania HTTP.

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

SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe.

Podstawy i języki programowania

Programowanie w środowiskach graficznych. Wykład 2.

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

1. Co można powiedzieć o poniższym kodzie (zakładając, że znajduje się on w jednym pliku A.java)?

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

Aplikacje RMI Lab4

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Systemy operacyjne na platformach mobilnych

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

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

Komponenty sterowane komunikatami

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

14. Komunikacja rozproszona gniazdka, RMI

Wykład 4: Wejście/wyjście: strumienie Java

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie sieciowe

Programowanie obiektowe

Rozdział 9 Obsługa baz danych w języku Java

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Programowanie komputerów. Wykład 10: Dostęp do baz danych z poziomu aplikacji Java. (JDBC Database Access)

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Gniazda BSD implementacja w C#

Podstawy otwartych języków programowania Wyjątki i strumienie I/O

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

WYMIANA I SKŁADOWANIE DANYCH MULTIMEDIALNYCH

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Protokół JDBC współpraca z relacyjnymi bazami danych

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

Transkrypt:

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 (java.sql) RMI CORBA obsługa baz danych zdalne wywoływanie metod komunikacja z aplikacjami napisanymi w innych językach Programowanie w języku Java 2 1

Komunikacja na poziomie UDP socket = new DatagramSocket(4445); byte[ ] buf = new byte[256]; DatagramPacket packet = new DatagramPacket(buf, buf.length); socket.receive(packet); DatagramSocket socket = new DatagramSocket(); byte[] buf = new byte[256]; InetAddress address = InetAddress.getByName( adres.pl ); DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 4445); socket.send(packet); Programowanie w języku Java 3 Programowanie na poziomie IP InetAddress addr = InetAddress.getByName(null); InetAddress addr = InetAddress.getByName("127.0.0.1"); InetAddress addr = InetAddress.getByName("localhost"); Serwer: ServerSocket s = new ServerSocket(PORT); Socket socket = s.accept(); BufferedReader in = new BufferedReader( new InputStreamReader( socket.getinputstream())); PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getoutputstream())), true);... socket.close(); s.close(); Klient: Socket socket = new Socket(addr,PORT); BufferedReader in = new BufferedReader( new InputStreamReader( socket.getinputstream())); PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getoutputstream())),true);... socket.close(); Programowanie w języku Java 4 2

Serwer wielowątkowy (1) import java.net.*; class ServeOneJabber extends Thread { private Socket socket; private BufferedReader in; private PrintWriter out; public ServeOneJabber(Socket s) throws IOException { socket = s; in = new BufferedReader( new InputStreamReader( socket.getinputstream())); out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getoutputstream())), true); start(); // Calls run() public void run() { while (true) { String str = in.readline(); if (str.equals("end")) break; System.out.println("Echoing: " + str); out.println(str); System.out.println("closing..."); catch(ioexception e) { System.err.println("IO Exception"); finally { socket.close(); catch(ioexception e) { System.err.println("Socket not closed"); Programowanie w języku Java 5 Serwer wielowątkowy (2) public class MultiJabberServer { static final int PORT = 8080; public static void main(string[] args) throws IOException { ServerSocket s = new ServerSocket(PORT); System.out.println("Server Started"); while(true) { Socket socket = s.accept(); new ServeOneJabber(socket); catch(ioexception e) { socket.close(); finally { s.close(); Programowanie w języku Java 6 3

Komunikacja SSL import javax.net.ssl.*;... int port = availableportnumber; SSLServerSocket s; SSLServerSocketFactory sslsrvfact = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault(); s=(sslserversocket)sslsrvfact. createserversocket(port); SSLSocket c = (SSLSocket)s.accept(); OutputStream out = c.getoutputstream(); InputStream in = c.getinputstream(); // Send messages to the client through // the OutputStream // Receive messages from the client // through the InputStream import javax.net.ssl.*;... int port = availableportnumber; String host = "hostname"; SSLSocketFactory sslfact = (SSLSocketFactory) SSLSocketFactory.getDefault(); SSLSocket s = (SSLSocket) sslfact.createsocket(host, port); OutputStream out = s.getoutputstream(); InputStream in = s.getinputstream(); // Send messages to the server through // the OutputStream // Receive messages from the server // through the InputStream catch (IOException e) { catch (IOException e) { Programowanie w języku Java 7 Programowanie na poziomie URL (1) URL u = new URL(getDocumentBase(), strona.html");... getappletcontext().showdocument(u); URL(String protocol, String host, String file) URL(String spec) URL myurl = new URL(...) ; catch (MalformedURLException e) {... // exception handler code here... Programowanie w języku Java 8 4

Przykład 1 import java.net.*; public class URLReader { public static void main(string[] args) throws Exception { URL yahoo = new URL("http://www.pk.edu.pl"); BufferedReader in = new BufferedReader( new InputStreamReader( yahoo.openstream())); String inputline; while ((inputline = in.readline())!= null) System.out.println(inputLine); in.close(); Programowanie w języku Java 9 Przykład 2 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.net.*; public class ShowHTML extends JApplet { JButton send = new JButton("Go"); JLabel l = new JLabel(); public void init() { Container cp = getcontentpane(); cp.setlayout(new FlowLayout()); send.addactionlistener(new Al()); cp.add(send); cp.add(l); class Al implements ActionListener { public void actionperformed(actionevent ae) { URL u = new URL(getDocumentBase(), "FetcherFrame.html"); getappletcontext().showdocument(u); catch(exception e) { l.settext(e.tostring()); Programowanie w języku Java 10 5

Nawiązanie połączenia URL URL pk = new URL("http://www.pk.edu.pl/"); URLConnection pkconnection = pk.openconnection(); pkconnection.connect(); BufferedReader in = new BufferedReader( new InputStreamReader( pkconnection.getinputstream())); connection.setdooutput(true); OutputStreamWriter out = new OutputStreamWriter( connection.getoutputstream()); String string = URLEncoder.encode( Text do wysłania, "UTF-8"); Programowanie w języku Java 11 JDBC- Java DataBase Connectivity Pakiet: java.sql Sterownik bazy danych np. dla bazy MySql: com.mysql.jdbc.driver Adres URL bazy danych: jdbc:podprotokół:adres_bazy Programowanie w języku Java 12 6

Schemat obsługi bazy danych: 1. Odnalezienie sterownika JDBC: Class.forName( "com.mysql.jdbc.driver "); 2. Konfigurowanie bazy danych 3. Nawiązanie połączenia z bazą danych: DriverManager.getConnection(dbUrl, user, password); 4. Wysyłanie zapytań SQL: createstatement(), executequery() 5. Zamkniecie połączenia z bazą close() Programowanie w języku Java 13 Przykład import java.sql.*; public class Lookup { public static void main(string[] args) throws SQLException, ClassNotFoundException { String dburl = "jdbc:odbc:people"; String user = ""; String password = ""; Class.forName( "sun.jdbc.odbc.jdbcodbcdriver"); Connection c = DriverManager.getConnection(dbUrl, user, password); Statement s = c.createstatement(); ResultSet r = s.executequery("select FIRST, LAST, EMAIL " + "FROM people.csv people " + "WHERE " + "(LAST='" + args[0] + "') " + " AND (EMAIL Is Not Null) " + "ORDER BY FIRST"); while(r.next()) { System.out.println( r.getstring("last") + ", " + r.getstring("first") + ": " + r.getstring("email") ); s.close(); Programowanie w języku Java 14 7

Koniec Programowanie w języku Java 15 8