A Java nyelv

Document Sample
A Java nyelv Powered By Docstoc
					   A Java nyelv

Hálózatkezelés, java.net
      Elek Tibor
    Hálózatkezelés
   java.net csomag:
    - IP cím kezelés: Host azonosítás (InetAddress,
    Inet4Address, Inet6Address), Host és port azonosítás
    (InetSocketAddress)

    - Socket kezelés:
    Kapcsolat-orientált (TCP) protokoll (Socket,
    ServerSocket),
    Kapcsolat nélküli (UDP) protokoll (DatagramSocket)

    - URL kezelés: Erőforrás azonosítás (URI, URL),
    kapcsolat a távoli erőforrással és kezelés
    (URLConnection, URLStreamHandler,
    ContentHandler)
    Hálózatkezelés
   InetAddress
    - nincs konstruktor

    - Host megtalálása:
    static InetAddress getByAddress(byte[])
    static InetAddress getByName(String)
    static InetAddress getLocalHost()

    - Tájékozódás a hostról (pl.)
    String getHostAddress()
    String getHostName()
    boolean isReachable(int timeout)
 Kapcsolat mentes kommunikáció
 Üzenet   küldés

 Jellemzői:
 - UDP alapú
 - Nem megbízható
 - szerver-kliens (fogad, küld)
 - üzenet szórás lehetősége

 DatagramSocket:kommunikációs végpont
 DatagramPacket: csomag
 Kapcsolat mentes kommunikáció
 Szerver:
  - DatagramSocket létrehozása egy port-t
  megadva,
  - várakozás a csomagokra.
 kliens:
  - DatagramSocket létrehozása,
  - csomag létrehozása megadva a címzett host-
  t, port-t, üzenetet, üzenet hosszt,
  - csomag elküldése
    Kapcsolat alapú kommunikáció
   Jellemzői:
    - TCP alapú
    - Alacsony szintű két irányú kommunikáció

   Szerver-kliens
    - szerver: (ServerSocket) egy host egy adott port-ján
    várja a kapcsolódásokat, egy szerverhez több kliens is
    kapcsolódhat, minden kapcsolódó klienshez felépül
    egy kapcsolódási végpont (Socket)
    - kliens: (Socket) kapcsolat felvétel egy szerverrel
    (host és port), kommunikáció, kapcsolat bontás
 Kapcsolat alapú kommunikáció
 ServerSocket:
 - Létrehozás: kontruktorral, megadva a port
 számát.
 Megdobhat IOException, SecurityException,
 IllegalArgumentException.
 A szerverrel innentől kezdve felvehetjük a
 kapcsolatot, a kapcsolatok várakozó sorba
 kerülnek.
 ServerSocket ss = new ServerSocket(portSzam);
 Megadható még a várakozó sor max. mérete.
 Kapcsolat alapú kommunikáció
 ServerSocket:
 - Kapcsolat fogadás: az accept() metódus
 meghívásával kiveszi a sorból az elsőt. Ha nincs
 még bejövő kapcsolat akkor elkezd várni egy
 bejövő kapcsolatra (blokkoló!). Ha van, akkor
 létrehoz hozzá egy Socket-et, amin keresztül
 kommunikálhatunk.
 Socket s = ss.accept();
 //majd kommunikáció
 Kapcsolat alapú kommunikáció
 ServerSocket:
 - Több kapcsolat fogadása: egy kapcsolaton
 keresztüli kommunikáció hosszadalmas lehet,
 ezért célszerű külön szálat indítani.
 while(!vege) {
     Socket s = ss.accept();
     //új szál indítása a kommunikációhoz
 }
 Kapcsolat alapú kommunikáció
 ServerSocket   egyéb metódusok:

 - A kapcsolódni kívánó host címe:
 public InetAddress getInetAddress()

 A lokál host címe:
 public int getLocalAddress()

 A portszám lekérdezése:
 public int getLocalPort()
 Kapcsolat alapú kommunikáció
 ServerSocket   egyéb metódusok:

 - Várakozási idő beállítása, lekérdezése (a
 várakozási idő letelte után
 java.io.InterruptedIOException
 generálódik, a 0 érték esetén végtelenségig vár):
 public void setSoTimeout(int timeout)
                 throws SocketException
 public int getSoTimeout()
                 throws IOException
 Kapcsolat alapú kommunikáció
 Socket:
 - A kapcsolódás végpontjai, mind a szerver,
 mind a kliens oldalon
 - Adatfolyamok nyerhetők ki belőlük, input és
 output is.
 - server oldali Socket megkapása az accept()-el
 - kliens oldali Socket kontruktorral, pl.:
 Socket(InetAddress host, int port)
 Socket(String host, int port)
 Kapcsolat alapú kommunikáció
 Socket:
 - Csatornák kinyerése:
 InputStream getInputStream()
                    throws IOException
 OutputStream getOutputStream()
                    throws IOException
 - Lezárás:
 void close()
 - Távoli gép címe, helyi gép címe:
 public InetAddress getInetAddress()
 public InetAddress getLocalAddress()
 - Távoli gép portja, helyi gép portja:
 public int getPort()
 public int getLocalPort()

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:5
posted:9/6/2011
language:Hungarian
pages:13