Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Praxis der Internet-Programmierung Http Streams Sockets JAVA XML APACHE.

Ähnliche Präsentationen


Präsentation zum Thema: "Praxis der Internet-Programmierung Http Streams Sockets JAVA XML APACHE."—  Präsentation transkript:

1 Praxis der Internet-Programmierung Http Streams Sockets JAVA XML APACHE

2 Hypertext Transfer Protocol WebConversation wc = new WebConversation(); WebRequest req = new GetMethodWebRequest( "http://..." ); WebResponse resp = wc.getResponse( req ); REQUESTRESPONSE Client Server

3 REQUEST GET /index.html HTTP 1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, *.* Accept-Encoding: gzip, deflate Content-Type: text/html User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

4 RESPONSE HTTP OK (STATUS CODE, 404 File not found) Server: Medusa/ Content-Type: text/html Content-Length: 136 Date: Fri, 26 Oct :47:16 GMT Test Page Hallo …. Weiter Informationen:

5 Wichtige Header Einträge Accept Unterstützte MIME Typen: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms- powerpoint, */* Accept-Encoding Unterstützte Kodierungen: gzip, deflate Accept-Language Unterstützte Sprache: De Authorization Verschlüsselte Identifizierung: name:passwort Basic Z3VnZ2lzYmVyZzpub3NlMg== Connection Unterstützt anhaltende Verbindung, der Client kann mehrere Files über eine Socketverbindung erhalten Keep-Alive User-Agent Mozilla/5.0 (Windows; U; WinNT4.0; en- US; m18) Gecko/ Netscape6/6.0 HTTP Request Header

6 Repetition Java Streams write() Unicode Stream Byte Stream

7 Einlesen eines Text Files import java.io.*; public class IOStreamDemo { // Throw exceptions to console: public static void main(String[] args) throws IOException { // Reading input by lines: BufferedReader in = new BufferedReader( new FileReader("tst.tex")); String s, s2 = new String(); while((s = in.readLine())!= null) s2 += s + "\n"; in.close(); System.out.print(s2); BufferedReader FileReader Anwendung

8 BufferedReader InputStreamReader (System.in) Java Anwendung GZIPOutputStream FileOutputStream BufferedOutputStream

9 import java.io.*; import java.util.zip.*; public class streamzip { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); BufferedOutputStream out = new BufferedOutputStream( new GZIPOutputStream( new FileOutputStream("test.gz"))); int c; while((c = in.read()) !=46) out.write(c); in.close(); out.close(); }} Console Zip File

10 Konzept von Sockets Puffer INPUT STREAM OUTPUT STREAM Abcd sd sf df sd £S$dsf£sdf$dfd$d IP Adresse Port Nummer :1313 Client Server

11 Socket Socket = Endpunkt einer Verbindung zwischen zwei Computern C1 C2 Socket TCP / UDP IP Ethernet

12 Java Socket Programmierung // MyClient; try { Socket s_C = new Socket("Machine name", PortNumber); } catch (IOException e) { System.out.println(e); } // MyService; try { ServerSocket s_serv = new ServerSocket(PortNumber); } catch (IOException e) { System.out.println(e); } Link:

13 Client Socket 1. import java.net.*; import java.io.*; 2.Verbindung herstellen: InetAddress addr = InetAddress.getByName("localhost"); Socket socket = new Socket(addr, PORT); 3.Input und Output Streams initialisieren. BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);

15 Server Socket 1. import java.net.*; import java.io.*; 2.Verbindung ermöglichen: ServerSocket s = new ServerSocket(PORT); try { // wartet auf ein Client Socket socket = s.accept(); 3.Input und Output Streams initialisieren. BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);

16 Server Socket 4.Kommunizieren while (true) { String str = in.readLine(); if (str.equals("END")) break; System.out.println("Echoing: " + str); out.println(str); } 5.Verbindung trennen socket.close();

17 Multi Socket Server Klassen Modellierung multi_echoserver PORT = 8131 main() Thread one_echoserver one_echoserver(socket) run() 1..20

18 Multi Socket Server public static void main(String[] args)throws IOException { ServerSocket s = new ServerSocket(PORT); try { while(true) { // Wartet auf einen Client Socket socket = s.accept(); try { new one_echoserver(socket); } catch(IOException e) { socket.close();} // Bei Fehler schliessen } } finally { s.close(); }}

19 Multi Socket Server class one_echoserver extends Thread { private Socket socket; private BufferedReader in; private PrintWriter out; public one_echoserver(Socket s) throws IOException { socket = s; in = new BufferedReader( new InputStreamReader(socket.getInputStream())); out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); start(); // run() }

20 Multi Socket Server class one_echoserver … … public void run() { try { while (true) { String str = in.readLine(); if (str.equals("END")) break; System.out.println("Echoing: " + str); out.println(str); } System.out.println("closing..."); … }

21 Praktikum Web Service basierend auf Sockets Client verbindet sich mit Server 1.Passwortabfrage vom Server 2.Server sendet die aktuelle aktuellen Börsenkurs (oder eine Wetterprognose) aus dem Internet (httpunit) 4. Beide schliessen den Socket Tip: mit ipconfig finden Sie ihre IP-Adresse FürFortgeschritten Java Chat Programm für 2 oder 3 Computer Der in der Vorlesung gezeigt Sourcecode finden Sie auf der Ifi-Homepage.

22 Tip & Tricks zum JBuilder Symbol markieren & Rechte Maustaste Information über die selektierte Klasse

23 Tip & Tricks zum JBuilder Templates Ctrl-J

24 Tip & Tricks zum JBuilder Tastatur Belegung Ctrl+Space mögliche Klassen oder Methoden Ctrl+Shift+Space mögliche Parameter Ctrl+Enter springt in die Klasse Ctrl+Alt+Space öffnet Klassen Bibliothek Ctrl+JCode Templates Ctrl + Shift + I Rechts schieben eines markierten Blocks Ctrl + Shift + U Links schieben eines markierten Blocks Ctrl + Ggoto Line


Herunterladen ppt "Praxis der Internet-Programmierung Http Streams Sockets JAVA XML APACHE."

Ähnliche Präsentationen


Google-Anzeigen