spr_java_socket_2perPage.pdf

(615 KB) Pobierz
Obsługa gniazd
Obsługa komunikacji peer-to-peer
´
Gniazda komunikacji sieciowej w srodowisku
Java
Dariusz Wawrzyniak
Dariusz.Wawrzyniak@cs.put.poznan.pl
Dariusz Wawrzyniak
Obsługa gniazd
Obsługa komunikacji peer-to-peer
´
Gniazda komunikacji sieciowej w srodowisku Java
1
Obsługa gniazd
Reprezentacja adresów
Tworzenie gniazd
2
Obsługa komunikacji peer-to-peer
Obsługa komunikacji strumieniowej
Obsługa komunikacji pakietowej
Dariusz Wawrzyniak
´
Gniazda komunikacji sieciowej w srodowisku Java
Obsługa gniazd
Obsługa komunikacji peer-to-peer
Reprezentacja adresów
Tworzenie gniazd
Pakiet
java.net
Pakiet
java.net
zawiera klasy do obsługi komunikacji
sieciowej.
java.lang.Object
java.net.InetAddress
java.net.SocketAddress
java.net.Socket
java.net.ServerSocket
java.net.DatagramSocket
Dariusz Wawrzyniak
Obsługa gniazd
Obsługa komunikacji peer-to-peer
´
Gniazda komunikacji sieciowej w srodowisku Java
Reprezentacja adresów
Tworzenie gniazd
´
Gniazda w srodowisku Java
Gniazdo
´
Gniazdo jest punktem koncowym dwukierunkowej komunikacji
pomiedzy odległymi procesami.
˛
Pakiet
java.net
definiuje kilka klas do obsługi gniazd:
klasa
Socket
dla gnizada komumnikacji strumieniowej
peer-to-peer,
klasa
ServerSocket
dla gniazda nasłuchu po stronie
serwera,
klasa
java.net.DatagramSocket
dla gniazda
komunikacji pakietowej,
klasa
java.net.MulticastSocket
dla gniazda
rozgłoszeniowego.
Dariusz Wawrzyniak
´
Gniazda komunikacji sieciowej w srodowisku Java
Obsługa gniazd
Obsługa komunikacji peer-to-peer
Reprezentacja adresów
Tworzenie gniazd
Adres gniazda
Adres gniazda składa sie z:
˛
adresu komputera (hosta)
numeru portu komunikacji sieciowej
Adres komputera mo˙ e by´ w postaci:
z
c
nazwy tekstowej zgodnej z wymogami odpwiedniego
serwisu nazewniczego,
adresu IP w postaci tekstowej lub numerycznej.
Dariusz Wawrzyniak
Obsługa gniazd
Obsługa komunikacji peer-to-peer
´
Gniazda komunikacji sieciowej w srodowisku Java
Reprezentacja adresów
Tworzenie gniazd
Klasy do reprezentacji adresów
java.lang.Object
java.net.InetAddress
java.net.Inet4Address
java.net.Inet6Address
java.net.SocketAddress
java.net.InetSocketAddress
Dariusz Wawrzyniak
´
Gniazda komunikacji sieciowej w srodowisku Java
Obsługa gniazd
Obsługa komunikacji peer-to-peer
Reprezentacja adresów
Tworzenie gniazd
Klasa
InetAddress
Klasa reprezentuje adres IP.
Klasa nie definiuje publicznych konstruktorów, a obiekty
tworzone sa jako wynik wywołania metod statycznych
˛
(metod klasy)
static InetAddress getByAddress(byte[]
addr)
— tworzy obiekt na podstawie adresu IP w postaci
binarnej,
static InetAddress getByAddress(String
host, byte[] addr)
— tworzy obiekt na podstawie
nazwy hosta i binarnego adresu IP (bez odwoływania sie
˛
do serwisu nazw),
static InetAddress getByName(String host)
tworzy obiekt na podstawie nazwy hosta,
static InetAddress getLocalHost()
— tworzy
obiekt reprezentujacy adres lokalny hosta.
˛
Dariusz Wawrzyniak
Obsługa gniazd
Obsługa komunikacji peer-to-peer
´
Gniazda komunikacji sieciowej w srodowisku Java
Reprezentacja adresów
Tworzenie gniazd
Klasy
Inet4Address
i
Inet6Address
Klasy reprezentuja odpowiednio adres IP w wersji 4 (IPv4)
˛
i adres IP w wersji 6 (IPv6).
Klasy wywiedzione sa z
InetAddress,
skad dzidzicza
˛
˛
˛
wiekszo´ c własno´ ci. Dzidziczenie ma charakter
˛
s
ostateczny (final).
Cz˛ sc metod klasy
InetAddress
jest redefiniowana,
e´ ´
miedzy innymi:
˛
byte[] getAddress()
— zwraca adres IP w postaci
binarnej,
String getHostAddress()
— zwraca napis z
reprezentacje tekstowa adresu IP.
˛
˛
Dariusz Wawrzyniak
´
Gniazda komunikacji sieciowej w srodowisku Java
Obsługa gniazd
Obsługa komunikacji peer-to-peer
Reprezentacja adresów
Tworzenie gniazd
Klasa
SocketAddress
i
InetSocketAddress
SocketAddress
jest klasa abstrakcyjna, reprezentujaca
˛
˛
˛ ˛
ogólny adres gniazda (nie zwiazany z zadnym protokołem).
˛
˙
Klasa
InetSocketAddress
jest pochodna klasy
˛
SocketAddress
i jest typem adresu gniazda w dziedzinie
Internetu. W skład obiektu klasy
InetSocketAddress
wchodzi adres IP hosta oraz numer portu.
Adres do obiektu klasy
InetSocketAddress
przypisywany jest tylko w jednym z konstruktorów:
InetSocketAddress(InetAddress addr, int
port)
InetSocketAddress(int port)
InetSocketAddress(String hostname, int
port)
Dariusz Wawrzyniak
Obsługa gniazd
Obsługa komunikacji peer-to-peer
´
Gniazda komunikacji sieciowej w srodowisku Java
Reprezentacja adresów
Tworzenie gniazd
Klasy do reprezentacji gniazd
java.lang.Object
java.net.Socket
javax.net.ssl.SSLSocket
java.net.ServerSocket
javax.net.ssl.SSLServerSocket
java.net.DatagramSocket
java.net.MulticastSocket
Dariusz Wawrzyniak
´
Gniazda komunikacji sieciowej w srodowisku Java
Zgłoś jeśli naruszono regulamin