Praxis der Internet-Programmierung - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Praxis der Internet-Programmierung

Description:

PowerPoint-Pr sentation ... java apache ... – PowerPoint PPT presentation

Number of Views:119
Avg rating:3.0/5.0
Slides: 25
Provided by: Pete3330
Category:

less

Transcript and Presenter's Notes

Title: Praxis der Internet-Programmierung


1
Praxis der Internet-Programmierung
  • Http
  • Streams
  • Sockets

XML
JAVA
APACHE
2
Hypertext Transfer Protocol
  • Server
  • Client
  • REQUEST
  • RESPONSE
  • WebConversation wc new WebConversation()
  • WebRequest req new GetMethodWebRequest(
    "http//..." )
  • WebResponse resp wc.getResponse( req )

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 1.1 200 OK (STATUS CODE, 404 File not
    found)
  • Server Medusa/1.26.4.2
  • Content-Type text/html
  • Content-Length 136
  • Date Fri, 26 Oct 2001 124716 GMT
  • lthtmlgt
  • ltheadgt
  • lttitlegtTest Pagelt/titlegt
  • lt/headgt
  • ltbodygt
  • Hallo .
  • lt/bodygt
  • lthtmlgt
  • Weiter Informationen http//www.w3.org/Protocols
    /

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 namepasswort
  • 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/20001108 Netscape6/6.0

HTTP Request Header
6
Repetition Java Streams
write()
Byte Stream
Unicode 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)

FileReader
BufferedReader
Anwendung
8
FileOutputStream
InputStreamReader(System.in)
GZIPOutputStream
BufferedReader
BufferedOutputStream
Java Anwendung
9
Console ? Zip File
  • 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()

10
Konzept von Sockets
Client
Server
IP Adresse Port Nummer 131.152.85.1221313
OUTPUT STREAM
INPUT STREAM
Sdsfsdfdfdd
Abcd sd sf df sd
Puffer
Puffer
11
Socket
  • Socket Endpunkt einer Verbindung zwischen zwei
    Computern

C1
C2
Socket TCP / UDP IP Ethernet
12
Java Socket Programmierung
  • Link http//www.javaworld.com/javaworld/jw-12-199
    6/jw-12-sockets_p.html
  • // 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)

13
Client Socket
  • import java.net. import java.io.
  • Verbindung herstellen
  • InetAddress addr InetAddress.getByName("localhos
    t")
  • Socket socket new Socket(addr, PORT)
  • Input und Output Streams initialisieren.
  • BufferedReader in new BufferedReader(new
    InputStreamReader(socket.getInputStream()))
  • PrintWriter out new PrintWriter(new
    BufferedWriter(new OutputStreamWriter(socket.getOu
    tputStream())),true)

14
Client Socket
  • Kommunizieren
  • String str in.readLine()
  • out.println(meine Meldung)
  • Verbindung trennen
  • socket.close()

15
Server Socket
  • import java.net. import java.io.
  • Verbindung ermöglichen
  • ServerSocket s new ServerSocket(PORT)
  • try
  • // wartet auf ein Client
  • Socket socket s.accept()
  • Input und Output Streams initialisieren.
  • BufferedReader in new BufferedReader(new
    InputStreamReader(socket.getInputStream()))
  • PrintWriter out new PrintWriter(new
    BufferedWriter(new OutputStreamWriter(socket.getOu
    tputStream())),true)

16
Server Socket
  • Kommunizieren
  • while (true)
  • String str in.readLine()
  • if (str.equals("END")) break
  • System.out.println("Echoing " str)
  • out.println(str)
  • Verbindung trennen
  • socket.close()

17
Multi Socket ServerKlassen Modellierung
Thread
multi_echoserver PORT 8131 main()
1..20
one_echoserver one_echoserver(socket) run()
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
  • Passwortabfrage vom Server
  • 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

CtrlSpace mögliche Klassen oder
Methoden CtrlShiftSpace mögliche
Parameter CtrlEnter springt in die
Klasse CtrlAltSpace öffnet Klassen
Bibliothek CtrlJ Code Templates Ctrl Shift
I Rechts schieben eines markierten
Blocks Ctrl Shift U Links schieben eines
markierten Blocks Ctrl G goto Line
Write a Comment
User Comments (0)
About PowerShow.com