1 / 13

A Java nyelv

A Java nyelv. Hálózatkezelés, java.net Elek Tibor. Hálózatkezelés.

adolfo
Download Presentation

A Java nyelv

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Java nyelv Hálózatkezelés, java.net Elek Tibor

  2. 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)

  3. 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)

  4. 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égpontDatagramPacket: csomag

  5. 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

  6. 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

  7. 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.

  8. 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ó

  9. 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}

  10. 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()

  11. 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ánjava.io.InterruptedIOExceptiongenerálódik, a 0 érték esetén végtelenségig vár):public void setSoTimeout(int timeout) throws SocketExceptionpublic int getSoTimeout() throws IOException

  12. 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)

  13. Kapcsolat alapú kommunikáció • Socket:- Csatornák kinyerése:InputStream getInputStream() throws IOExceptionOutputStream 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()

More Related