RKO: Java I/O, sockets

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    RKO: Java I/O, sockets - Presentation Transcript

    1. Java V/I (I/O), vtiči (sockets) Matjaž Pančur [email_address] - lj.si
    2. Kaj si bomo pogledali
      • Java V/I (Java IO)
      • Omrežja, IP, UDP, TCP
      • Vtiči (sockets)
    3. Java IO, tokovi
      • paket java.io
      • Tokovi ( streams )
        • Da dobimo ustrezno povezavo (tok), lahko različne tokove vežemo med seboj
        • Tok bajtov ( byte oriented )
          • Streams
        • Tok znakov ( character oriented )
          • Readers, Writers
      • Med katerokoli V/I operacijo se lahko sproži IOException
      • Blokirajoči klici V/I ( blocking I/O )
        • Neblokirajoči klici (nonblocking I/O): od Jave1.4 naprej, java.nio
    4. Tokovi
      • InputStream
        • ByteArrayInputStream
        • FileInputStream
        • PipedInputStream
        • StringBufferInputStream
        • System.in (iz konzole)
      • Filter InputStreams
        • BufferedInputStream (predpomnilnik za bolj učinkovit dostop)
        • DataInputStream (branje primitivnih tipov - int, float, ...)
        • PushBackInputStream ( lahko “vrnemo” v tok)
    5. Tokovi
      • OutputStream
        • ByteArrayOutputStream
        • FileOutputStream
        • PipedOutputStream
        • StringBufferOutputStream
        • System.out
        • System.err
      • Filter OutputStreams
        • BufferedOutputStream
        • DataOutputStream (pisanje primitivnih tipov)
        • PrintStream (metodi print , println )
    6. Readers, Writers
      • Za znakovne tokove
      • Reader
        • CharArrayReader
        • FileReader
        • PipedReader
        • StringReader
        • InputStreamReader (most med “readerji/writerji” in “starimi” tokovi)
      • Filter Reader
        • BufferedReader
        • FilterReader , ...
    7. Readers, Writers
      • Writer
        • CharArrayWriter
        • FileWriter
        • PipedWriter
        • StringWriter
        • OutputStreamWriter (most med “readerji/writerji” in “starimi” tokovi)
      • Filter Writer
        • PrintWriter (metode println , print , ...)
        • BufferedWriter
        • ...
    8. Omrežje
      • Vozlišče ( node ) – katerakoli naprava v omrežju
      • Gostitelj ( host ) – računalnik v omrežju
      • Naslov ( address ) – “računalniško” ime (IP številka)
      • Ime gostitelja ( host name ) – človeku prijazno ime računalnika
    9. Omrežje
      • TCP/IP model
        • Aplikacijska plast (HTTP, FTP, SMTP, …)
        • Transportna plast (TCP, UDP)
        • Internetna plast (IP)
        • Rač./omrežje
    10. TCP, UDP v Javi
      • TCP (bolj pogost; razred Socket )
        • Podatkovni tok ( data stream )
        • Zanesljiv ( reliable )
        • Urejen ( ordered )
      • UDP (razred DatagramSocket )
        • Datagrami (paketi)
        • Nezanesljiv ( unreliable )
        • Neurejen ( unordered )
    11. Vtiči, vrata ( sockets, ports )
      • Vtič ( socket ) – abstrakcija povezave med dvema računalnikoma; dvosmerna komunikacija
      • Vrata ( port ) – točka srečanja na strežniku
        • Le ena storitev na ena vrata
        • 1-1023: znana vrata (standardne storitve)
        • 1024 naprej – “začasne” storitve
    12. Razred Socket
      • Paket java.net
      • Socket(String host, int port)
      • InputStream getInputStream()
      • OutputStream getOutputStream()
      • void close()
    13. Odjemalec
      • Kreiraj objekt Socket
      • Kreiraj izhodni tok (pisanje)
      • Kreiraj vhodni tok (branje)
      • Pošiljaj in sprejemaj podatke
      • Zapri Socket
    14. Odjemalec
      • Kreiraj objekt Socket
      • Socket client = new Socket( " www. krneki.si" , 80);
      • Kreiraj izhodni tok (pisanje)
      • // parameter "true" - autoFlush za println
      • PrintWriter out = new PrintWriter(client.getOutputStream(), true);
      • Kreiraj vhodni tok (branje)
      • BufferedReader in = new BufferedReader(
      • new InputStreamReader(
      • client.getInputStream()));
    15. Odjemalec
      • Pošiljaj in sprejemaj podatke
        • Za izhodni tok ( PrintWriter ) uporabi print , println
        • Za vhodni tok ( BufferedReader ) uporabi read in readLine
      • Zapri Socket
      • client.close()
        • Zapre tudi vhodni in izhodni tok
    16. Razred ServerSocket
      • Paket java.net
      • ServerSocket(int port)
      • ServerSocket(in port, int numOfClients)
        • numOfClients je privzeto 50
      • Socket accept()
        • Blokirajoči klic (Blocking I/O)
      • void setSoTimeout(int ms), int getSoTimeout()
        • Čaka ms milisekund, nato se sproži SocketTimeoutException
        • Če je ms=0, čaka neskončno dolgo (privzeto)
      • void close()
    17. Strežnik
      • Kreiraj objekt ServerSocket
      • Kreiraj objekt Socket iz ServerSocket
      • Kreiraj vhodni tok
      • Kreiraj izhodni tok
      • Pošiljaj in sprejemaj podatke
      • Zapri Socket
    18. Strežnik
      • Kreiraj objekt ServerSocket
      • Server Socket listenSocket = new Server Socket( portNumber );
      • Kreiraj objekt Socket iz ServerSocket
      • while (someCondition) {
      • Socket server = listenSocket.accept();
      • doSomethingWith(server);
      • }
        • doSomethingWith običajno sproži novo nit
    19. Strežnik
      • Kreiraj vhodni tok
      • BufferedReader in = new BufferedReader( new InputStreamReader( server.getInputStream()));
      • Kreiraj izhodni tok
      • // parameter "true" - autoflush za println
      • PrintWriter out = new PrintWriter(server.getOutputStream(), true);
    20. Strežnik
      • Pošiljaj in sprejemaj podatke
        • Vhod: readLine
        • Izhod: println
      • Zapri Socket
      • server.close()
        • Zapre tudi vhodni in izhodni tok
    21. Izjeme pri vtičih (SocketException)
      • Vse so podrazredi IOException
      • SocketException – generična izjema
        • BindException (pri vezanju na vrata)
        • ConnectException (vtič se ne more priklopiti na host , port )
        • NoRouteToHostException (ne more najti poti do računalnika)
        • InterruptedIOException (timeout pri branju)
    22. Strežnik – primer iz [1]
      • NetworkServer.java
      • SocketUtil.java
      • NetworkServerTest.java
      • EchoServer.java
        • Kaj pa če je več odjemalcev?
          • Niti ( threads ) (ThreadedEchoServer.java)
          • Non-blocking IO (Java 1.4, paket java.nio )
    23. Odjemalec – primer iz [1]
      • NetworkClient.java
      • SocketUtil.java
      • NetworkClientTest.java
    24. Viri
      • [1] M. Hall, W. Brown, Core Web Programming, 2ed, notes.corewebprogramming.com
      • A. Chaffee, Networking.ppt, purpletech.com
      • D. Reilly, M Reilly: Java Network Programming and Distributed Computing, AW, 2002 (na voljo v LRK)

    + njoknjok, 3 years ago

    custom

    2160 views, 0 favs, 0 embeds more stats

    Java I/O in vtici, RKO, FRI

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 2160
      • 2160 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories