Spec-Zone.ru › OpenJDK 8

Пакет java.net

Предоставляет классы для реализации сетевых приложений.

См.: Описание

Интерфейс Описание
ContentHandlerFactory

Этот интерфейс определяет фабрику для обработчиков содержимого.

CookiePolicy

Реализации CookiePolicy определяют, какие куки должны быть приняты, а какие — отклонены.

CookieStore

Объект CookieStore представляет хранилище для куки.

DatagramSocketImplFactory

Этот интерфейс определяет фабрику для реализаций сокетов дейтаграмм.

FileNameMap

Простой интерфейс, который предоставляет механизм сопоставления имени файла и строке MIME-типа.

ProtocolFamily

Представляет семейство протоколов связи.

SocketImplFactory

Этот интерфейс определяет фабрику для реализаций сокетов.

SocketOption<T>

Настройка сокета, связанная с сокетом.

SocketOptions

Интерфейс методов получения/установки настроек сокета.

URLStreamHandlerFactory

Этот интерфейс определяет фабрику для обработчиков потокового протокола URL.

Класс Описание
Authenticator

Класс Authenticator представляет собой объект, который знает, как получить аутентификацию для сетевого соединения.

CacheRequest

Представляет каналы для хранения ресурсов в ResponseCache.

CacheResponse

Представляет каналы для получения ресурсов из ResponseCache.

ContentHandler

Абстрактный класс ContentHandler является суперклассом всех классов, которые читают Object из URLConnection.

CookieHandler

Объект CookieHandler предоставляет механизм обратной связи для подключения реализации политики управления состоянием HTTP в обработчик протокола HTTP.

CookieManager

CookieManager предоставляет конкретную реализацию CookieHandler, которая разделяет хранение куки от политики, связанной с принятием и отклонением куки.

DatagramPacket

Этот класс представляет пакет дейтаграммы.

DatagramSocket

Этот класс представляет собой сокет для отправки и получения пакетов дейтаграмм.

DatagramSocketImpl

Базовый класс реализации абстрактных сокетов дейтаграмм и мультимедиа.

HttpCookie

Объект HttpCookie представляет собой куки HTTP, который переносит информацию о состоянии между сервером и клиентом.

HttpURLConnection

URLConnection с поддержкой функций, специфичных для HTTP.

IDN

Предоставляет методы для преобразования интернационализированных доменных имен (IDN) между обычным представлением Unicode и представлением ASCII Compatible Encoding (ACE).

Inet4Address

Этот класс представляет собой адрес интернет-протокола версии 4 (IPv4).

Inet6Address

Этот класс представляет собой адрес интернет-протокола версии 6 (IPv6).

InetAddress

Этот класс представляет собой адрес интернет-протокола (IP).

InetSocketAddress

Этот класс реализует IP-адрес сокета (IP-адрес + номер порта). Он также может быть парой (имя хоста + номер порта), в этом случае будет предпринята попытка разрешить имя хоста.

InterfaceAddress

Этот класс представляет собой адрес сетевого интерфейса.

JarURLConnection

URL Connection к файлу Java ARchive (JAR) или записи в файле JAR.

MulticastSocket

Класс сокета мультимедиа полезен для отправки и получения пакетов IP-мультимедиа.

NetPermission

Этот класс предназначен для различных сетевых разрешений.

NetworkInterface

Этот класс представляет сетевой интерфейс, состоящий из имени и списка IP-адресов, назначенных этому интерфейсу.

PasswordAuthentication

Класс PasswordAuthentication — это контейнер данных, который используется классом Authenticator.

Proxy

Этот класс представляет настройку прокси, обычно тип (http, socks) и адрес сокета.

ProxySelector

Выбирает прокси-сервер для использования при подключении к сетевому ресурсу, указанному в URL.

ResponseCache

Представляет реализации кэшей URLConnection.

SecureCacheResponse

Представляет кэшированный ответ, изначально полученный через безопасные средства, такие как TLS.

ServerSocket

Этот класс реализует серверные сокеты.

Socket

Этот класс реализует клиентские сокеты (также называемые просто "сокетами").

SocketAddress

Этот класс представляет собой адрес сокета без привязки к протоколу.

SocketImpl

Абстрактный класс SocketImpl — это общий суперкласс всех классов, которые фактически реализуют сокеты.

SocketPermission

Этот класс представляет доступ к сети через сокеты.

StandardSocketOptions

Определяет стандартные настройки сокета.

URI

Представляет собой ссылку на универсальный идентификатор ресурса (URI).

URL

Класс URL представляет собой универсальный указатель на ресурс (URL), указатель на "ресурс" в глобальной сети.

URLClassLoader

Этот загрузчик классов используется для загрузки классов и ресурсов из пути поиска URL, которые ссылаются на файлы JAR и каталоги.

URLConnection

Абстрактный класс URLConnection является суперклассом всех классов, представляющих коммуникационное соединение между приложением и URL.

URLDecoder

Утилита для декодирования HTML-форм.

URLEncoder

Утилита для кодирования HTML-форм.

URLPermission

Представляет разрешение на доступ к ресурсу или набору ресурсов, определяемых заданным URL, и для заданного набора пользовательских методов запросов и заголовков запросов.

URLStreamHandler

Абстрактный класс URLStreamHandler — это общий суперкласс для всех обработчиков протоколов потоков.

Перечисление Описание
Authenticator.RequestorType

Тип сущности, запрашивающей аутентификацию.

Proxy.Type

Представляет тип прокси.

StandardProtocolFamily

Определяет стандартные семейства коммуникационных протоколов.

Исключение Описание
BindException

Указывает, что произошла ошибка при попытке привязать сокет к локальному адресу и порту.

ConnectException

Указывает, что произошла ошибка при попытке подключить сокет к удаленному адресу и порту.

HttpRetryException

Выбрасывается для указания того, что запрос HTTP необходимо повторить, но его нельзя автоматически повторить из-за включенного режима потоковой передачи.

MalformedURLException

Выбрасывается для указания того, что произошла ошибка в формате URL.

NoRouteToHostException

Указывает, что произошла ошибка при попытке подключить сокет к удаленному адресу и порту.

PortUnreachableException

Указывает, что получено сообщение ICMP «Недоступный порт» по подключённой дейтаграмме.

ProtocolException

Выбрасывается для указания ошибки в базовом протоколе, например, TCP-ошибки.

SocketException

Выбрасывается для указания ошибки создания или доступа к Socket.

SocketTimeoutException

Указывает, что произошел таймаут при чтении или приёме сокета.

UnknownHostException

Выбрасывается для указания того, что IP-адрес хоста не может быть определён.

UnknownServiceException

Выбрасывается для указания ошибки неизвестной службы.

URISyntaxException

Исключение, проверяемое при компиляции, выбрасываемое для указания того, что строка не может быть обработана как ссылка URI.

Описание пакета java.net

Предоставляет классы для реализации сетевых приложений.

Пакет java.net можно грубо разделить на две части:

  • API низкого уровня, который работает со следующими абстракциями:

    • Адреса, которые являются сетевыми идентификаторами, например, IP-адреса.

    • Сокеты, которые являются основными двунаправленными механизмами обмена данными.

    • Интерфейсы, которые описывают сетевые интерфейсы.

  • API высокого уровня, который работает со следующими абстракциями:

    • URI, которые представляют универсальные идентификаторы ресурсов.

    • URL, которые представляют универсальные указатели ресурсов.

    • Соединения, которые представляют соединения с ресурсами, на которые указывают URL.

Адреса

Адреса используются во всех API java.net как идентификаторы хостов или идентификаторы конечных точек сокетов.

Класс InetAddress является абстракцией, представляющей IP-адрес (адрес интернет-протокола). Он имеет два подкласса:

  • Inet4Address для адресов IPv4.
  • Inet6Address для адресов IPv6.

Однако в большинстве случаев нет необходимости работать напрямую с подклассами, так как абстракция InetAddress должна покрывать большую часть необходимых функций.

Об IPv6

Не все системы поддерживают протокол IPv6, и хотя Java сетевой стек попытается обнаружить и использовать его прозрачно, если он доступен, также можно отключить его использование с помощью системной переменной. В случае, если IPv6 недоступен или явно отключен, Inet6Address больше не являются допустимыми аргументами для большинства сетевых операций. Хотя методы, такие как InetAddress.getByName(java.lang.String), гарантируют, что при поиске имен хостов не будет возвращен Inet6Address, при передаче литералов можно создать такой объект. В этом случае большинство методов при вызове с Inet6Address будут генерировать исключение.

Сокеты

Сокеты — это способ установить соединение между машинами по сети. Пакет java.net предоставляет 4 типа сокетов:

  • Socket — это API клиента TCP, и его обычно используют для подключения к удаленному хосту.
  • ServerSocket — это API сервера TCP, и он обычно принимает соединения от клиентских сокетов.
  • DatagramSocket — это API конечной точки UDP, который используется для отправки и получения пакетов датаграмм.
  • MulticastSocket — это подкласс DatagramSocket, используемый при работе с группами многоадресной рассылки.

Отправка и получение данных с помощью сокетов TCP выполняется через потоки InputStream и OutputStream, которые можно получить с помощью методов Socket.getInputStream() и Socket.getOutputStream().

Интерфейсы

Класс NetworkInterface предоставляет API для просмотра и запроса всех сетевых интерфейсов (например, подключения Ethernet или конечной точки PPP) локальной машины. С помощью этого класса можно проверить, настроен ли какой-либо из локальных интерфейсов для поддержки IPv6.

Обратите внимание, что все соответствующие реализации должны поддерживать по крайней мере один NetworkInterface объект, который должен быть подключен к сети или быть «обратным» интерфейсом, который может взаимодействовать только с сущностями на той же машине.

API высокого уровня

Некоторые классы в пакете java.net обеспечивают гораздо более высокий уровень абстракции и позволяют легко получать доступ к ресурсам в сети. Эти классы:

  • URI — это класс, представляющий универсальный идентификатор ресурса, как указано в RFC 2396. Как следует из названия, это просто идентификатор и не предоставляет прямого способа доступа к ресурсу.
  • URL — это класс, представляющий универсальный указатель ресурса, который является более старым понятием для URI и средством доступа к ресурсам.
  • URLConnection создается из URL и является каналом связи, используемым для доступа к ресурсу, на который указывает URL. Этот абстрактный класс делегирует большую часть работы обработчикам протоколов, таким как http или https.
  • HttpURLConnection — это подкласс URLConnection и предоставляет дополнительные функции, специфичные для протокола HTTP.

Рекомендуется использовать URI для идентификации ресурсов, а затем преобразовать его в URL, когда пришло время получить доступ к ресурсу. Из этого URL можно получить URLConnection для тонкого управления или напрямую получить InputStream.

Вот пример:

URI uri = new URI("http://java.sun.com/");
 URL url = uri.toURL();
 InputStream in = url.openStream();

Обработчики протоколов

Как уже упоминалось, URL и URLConnection полагаются на обработчики протоколов, которые должны присутствовать, иначе будет сгенерировано исключение. Это основное отличие от URI, которые только идентифицируют ресурсы и, следовательно, не нуждаются в доступе к обработчику протокола. Таким образом, хотя можно создать URI с любым типом схемы протокола (например, myproto://myhost.mydomain/resource/), аналогичный URL попытается инициализировать обработчик для указанного протокола; если он не существует, будет сгенерировано исключение.

По умолчанию обработчики протоколов загружаются динамически из стандартного расположения. Однако можно добавить в путь поиска, установив системную переменную java.protocol.handler.pkgs. Например, если она установлена в значение myapp.protocols, то код URL попытается в случае с http сначала загрузить myapp.protocols.http.Handler, а затем, если это не удастся, http.Handler из стандартного расположения.

Обратите внимание, что класс обработчика должен быть подклассом абстрактного класса URLStreamHandler.

Дополнительные спецификации

  • Свойства системы сети
С момента:
JDK1.0

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API