Spec-Zone.ru › OpenJDK 21

Пакет java.net

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

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

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

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

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

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

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

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

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

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

Адреса

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

Класс InetAddress представляет собой абстракцию IP (Internet Protocol) адреса. У него есть два подкласса:

  • 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 — это класс, представляющий универсальный идентификатор ресурса (URI), как указано в RFC 2396. Как следует из названия, это просто идентификатор, и он не предоставляет прямого способа доступа к ресурсу.
  • URL — это класс, представляющий универсальный указатель ресурса (URL), который является как более старой концепцией URI, так и средством доступа к ресурсам.
  • URLConnection создаётся на основе URL и представляет собой коммуникационный канал, используемый для доступа к ресурсу, на который указывает URL. Этот абстрактный класс делегирует большую часть работы обработчикам протоколов, таким как http или https.
  • HttpURLConnection — это подкласс URLConnection, предоставляющий дополнительные функции, специфичные для протокола HTTP. Этот API был заменён новым API клиента HTTP HTTP Client API.

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

Вот пример:

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

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

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

По умолчанию обработчики протоколов загружаются динамически из стандартного расположения. Однако можно развернуть дополнительные обработчики протоколов в виде services. Поставщики услуг типа URLStreamHandlerProvider находятся во время выполнения, как указано в конструкторе URL.

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

  • Свойства сетевой системы
Since:
1.0
java.net.http
java.base
Модуль Пакет Описание
java.net.http
API клиента HTTP и WebSocket
java.net.spi
Классы поставщиков услуг для пакета java.net.
Класс Описание
Authenticator
Класс Authenticator представляет объект, знающий, как получить аутентификацию для сетевого подключения.
Authenticator.RequestorType
Тип сущности, запрашивающей аутентификацию.
BindException
Указывает, что произошла ошибка при попытке привязать сокет к локальному адресу и порту.
CacheRequest
Представляет каналы для хранения ресурсов в ResponseCache.
CacheResponse
Представляет каналы для извлечения ресурсов из ResponseCache.
ConnectException
Указывает, что произошла ошибка при попытке подключить сокет к удаленному адресу и порту.
ContentHandler
Абстрактный класс ContentHandler является суперклассом всех классов, которые считывают Object из URLConnection.
ContentHandlerFactory
Этот интерфейс определяет фабрику для обработчиков содержимого.
CookieHandler
Объект CookieHandler предоставляет механизм обратного вызова для подключения реализации политики управления состоянием HTTP в обработчик протокола HTTP.
CookieManager
CookieManager предоставляет конкретную реализацию CookieHandler, которая отделяет хранение cookie от политики, окружающей принятие и отклонение cookie.
CookiePolicy
Реализации CookiePolicy определяют, какие cookie должны быть приняты, а какие отклонены.
CookieStore
Объект CookieStore представляет хранилище для cookie.
DatagramPacket
Этот класс представляет пакет датаграмм.
DatagramSocket
Этот класс представляет сокет для отправки и получения пакетов датаграмм.
DatagramSocketImpl
Базовый класс реализации абстрактного сокета для датаграмм и мультикаст-сокетов.
DatagramSocketImplFactory
Этот интерфейс определяет фабрику для реализаций сокетов датаграмм.
FileNameMap
Простой интерфейс, который предоставляет механизм сопоставления между именем файла и строкой MIME-типа.
HttpCookie
Объект HttpCookie представляет HTTP cookie, который передает информацию о состоянии между сервером и пользовательским агентом.
HttpRetryException
Выбрасывается для указания того, что HTTP-запрос необходимо повторить, но не может быть повторен автоматически из-за включенного режима потоковой передачи.
HttpURLConnection
URLConnection с поддержкой функций, специфичных для HTTP.
IDN
Предоставляет методы для преобразования международных доменных имен (IDN) между обычным представлением Unicode и представлением ASCII-совместимого кодирования (ACE).
Inet4Address
Этот класс представляет адрес Интернет-протокола версии 4 (IPv4).
Inet6Address
Этот класс представляет адрес Интернет-протокола версии 6 (IPv6).
InetAddress
Этот класс представляет адрес Интернет-протокола (IP).
InetSocketAddress
Этот класс реализует адрес IP-сокета (IP-адрес + номер порта). Он также может быть парой (имя хоста + номер порта), в этом случае будет предпринята попытка разрешить имя хоста.
InterfaceAddress
Этот класс представляет адрес сетевого интерфейса.
JarURLConnection
URLConnection для файла Java ARchive (JAR) или записи в файле JAR.
MalformedURLException
Выбрасывается для указания того, что произошла ошибка в URL.
MulticastSocket
MulticastSocket — это сокет датаграмм, удобный для отправки и получения IP-мультикаст-датаграмм.
NetPermission
Этот класс предназначен для различных сетевых разрешений.
NetworkInterface
Этот класс представляет сетевой интерфейс, состоящий из имени и списка IP-адресов, назначенных этому интерфейсу.
NoRouteToHostException
Указывает, что произошла ошибка при попытке подключить сокет к удаленному адресу и порту.
PasswordAuthentication
Класс PasswordAuthentication — это контейнер данных, используемый классом Authenticator.
PortUnreachableException
Указывает, что получено сообщение ICMP Port Unreachable для подключенной датаграммы.
ProtocolException
Выбрасывается для указания ошибки в базовом протоколе, например, ошибки TCP.
ProtocolFamily
Представляет семейство сетевых протоколов.
Proxy
Этот класс представляет настройку прокси, обычно тип (http, socks) и адрес сокета.
Proxy.Type
Представляет тип прокси.
ProxySelector
Выбирает прокси-сервер для использования при подключении к сетевому ресурсу, указанному в URL.
ResponseCache
Представляет реализации кешей URLConnection.
SecureCacheResponse
Представляет ответ из кэша, первоначально полученный безопасным способом, например, через TLS.
ServerSocket
Этот класс реализует серверные сокеты.
Socket
Этот класс реализует клиентские сокеты (также называемые просто «сокетами»).
SocketAddress
Этот класс представляет адрес сокета без привязки к протоколу.
SocketException
Выбрасывается для указания ошибки создания или доступа к Socket.
SocketImpl
Абстрактный класс SocketImpl — это общий суперкласс всех классов, которые фактически реализуют сокеты.
SocketImplFactory
Этот интерфейс определяет фабрику для реализаций сокетов.
SocketOption<T>
Параметр сокета, связанный с сокетом.
SocketOptions
Интерфейс методов получения/установки параметров сокета.
SocketPermission
Этот класс представляет доступ к сети через сокеты.
SocketTimeoutException
Указывает, что произошел таймаут при чтении или приеме сокета.
StandardProtocolFamily
Определяет стандартные семейства сетевых протоколов.
StandardSocketOptions
Определяет стандартные параметры сокета.
UnixDomainSocketAddress
Адрес Unix-доменного сокета.
UnknownHostException
Выбрасывается для указания того, что IP-адрес хоста определить не удалось.
END_OF_DOCUMENT_MARKER
UnknownServiceException
Выбрасывается для указания того, что произошла неизвестная ошибка службы.
URI
Представляет ссылку на универсальный идентификатор ресурса (URI).
URISyntaxException
Проверяемая исключительная ситуация, возникающая при невозможности разбора строки в качестве ссылки URI.
URL
Класс URL представляет собой универсальный локатор ресурса, указатель на «ресурс» в Всемирной паутине.
URLClassLoader
Этот загрузчик классов используется для загрузки классов и ресурсов из пути поиска URL, указывающих как на JAR-файлы, так и на каталоги.
URLConnection
Абстрактный класс URLConnection является суперклассом всех классов, представляющих канал связи между приложением и URL.
URLDecoder
Утилитный класс для декодирования HTML-форм.
URLEncoder
Утилитный класс для кодирования HTML-форм.
URLPermission
Представляет разрешение на доступ к ресурсу или набору ресурсов, определённых данным URL, и для заданного набора методов запроса и заголовков запроса, настраиваемых пользователем.
URLStreamHandler
Абстрактный класс URLStreamHandler является общим суперклассом для всех обработчиков протоколов потоков.
URLStreamHandlerFactory
Этот интерфейс определяет фабрику для URL обработчиков протоколов потоков.

© 1993, 2023, 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.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/net/package-summary.html

Spec-Zone.ru

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