Сетевые классы и интерфейсы



Java поддерживает TCP/IP как за счет расширения уже имеющихся интерфейсов по-

токового ввода-вывода, представленных в главе 19, так и за счет добавления средств, не-

обходимых для построения объектов ввода-вывода в сети. Java поддерживает семейства

протоколов как TCP, так и UDP. TCP применяется для надежного потокового ввода-вы-

вода по сети. UDP поддерживает более простую, а потому быструю модель передачи дей-

таграмм от точки к точке. Классы, содержащиеся в пакете java.net, перечислены ниже.

Authenticator Inet6Address ServerSocket

CacheRequest InetAddress Socket

CacheResponse InetSocketAddress SocketAddress

ContentHandler InterfaceAddress (добавлен в Java SE 6) SocketImpl

CookieHandler JarURLConnection SocketPermission

CookieManager (добавлен в Java SE 6) MulticastSocket URI

DatagramPacket NetPermission URL

DatagramSocket NetworkInterface URLClassLoader

DatagramSocketImpl PasswordAuthentication URLConnection

HttpCookie (добавлен в Java SE 6) Proxy URLDecoder

HttpURLConnection ProxySelector URLEncoder

IDN (добавлен в Java SE 6) ResponseCache URLStreamHandler

Inet4Address SecureCacheResponse

Интерфейсы пакета java.net перечислены далее:

ContentHandlerFactory DatagramSocketImplFactory SocketOptions

CookiePolicy (добавлен в Java SE 6) FileNameMap

CookieStore (добавлен в Java SE 6) SocketImplFactory

InetAddress

Класс InetAddress используется для инкапсуляции как числового IP-адреса, так и

доменного имени для этого адреса. Вы взаимодействуете с классом, используя имя IP-

хоста, что намного удобнее и понятнее, чем IP-адрес. Класс InetAddress скрывает внут-

ри себя число. Он может работать как с адресами IPv4, так и с IPv6.

Методы-фабрики

Класс InetAddress не имеет видимых конструкторов. Чтобы создать объект

InetAddress, вы должны использовать один из доступных методов-фабрик. Методы-

фабрики (factory method) — это просто соглашение, в соответствии с которым статиче-

ские методы класса возвращают экземпляр этого класса. Это делается вместо перегрузки

конструктора с различными списками параметров, когда наличие уникальных имен ме-

тодов делает результат более ясным. Ниже приведены три часто используемых метода-

фабрики InetAddress.

static InetAddress getLocalHost()

throws UnknownHostException

static InetAddress getByName(String hostName)

throws UnknownHostException

static InetAddress[ ] getAllByName(String hostName)

throws UnknownHostException

Метод getLocalHost() просто возвращает объект InetAddress, представляющий

локальный хост. Метод getByName() возвращает InetAddress хоста, чье имя ему пере-

дано. Если эти методы оказываются не в состоянии получить имя хоста, они возбуждают

исключение UnknownHostException.

Когда одно имя используется для представления нескольких машин в Internet — это

обычное явление. В мире Web-серверов это единственный путь предоставления некото-

рой степени масштабируемости. Метод-фабрика getAllByName() возвращает массив

InetAddress, представляющий все адреса, в которые преобразуется конкретное имя. Он

также возбуждает исключение UnknownHostException в случае, если не может преобра-

зовать имя в хотя бы один адрес.

InetAddress также включает фабричный метод getDyAddress(), который принима-

ет IP-адрес и возвращает объект InetAddress. Причем могут использоваться как адреса

IPv4, так и IPv6.

В следующем примере распечатываются адреса и имена локальной машины, а также

двух широко известных Internet-сайтов.

// Демонстрация применения InetAddress.

import java.net.*;


Дата добавления: 2015-12-17; просмотров: 17; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!