Spec-Zone.ru › OpenJDK 24

Пакет 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 объект, который должен быть подключен к сети или быть "loopback" интерфейсом, который может общаться только с сущностями на той же машине.

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

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

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

Рекомендуется использовать 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
Представляет каналы для хранения ресурсов в кэше ответов.
CacheResponse
Представляет каналы для извлечения ресурсов из кэша ответов.
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
Этот класс представляет собой адрес Internet Protocol версии 4 (IPv4).
Inet6Address
Этот класс представляет собой адрес Internet Protocol версии 6 (IPv6).
InetAddress
Этот класс представляет собой адрес Internet Protocol (IP).
InetSocketAddress
Этот класс реализует IP-адрес сокета (IP-адрес + номер порта). Он также может быть парой (имя хоста + номер порта), в этом случае будет предпринята попытка разрешить имя хоста.
InterfaceAddress
Этот класс представляет собой адрес сетевого интерфейса.
JarURLConnection
URL-соединение к файлу Java ARchive (JAR) или записи в файле JAR.
MalformedURLException
Выбрасывается для указания на наличие неправильного URL.
MulticastSocket
MulticastSocket — это сокет датаграмм, удобный для отправки и получения IP-пакетов мультивещания.
NetPermission
Этот класс предназначен для различных сетевых разрешений.
NetworkInterface
Этот класс представляет сетевой интерфейс.
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 представляет собой универсальный указатель ресурса (URL), ссылку на «ресурс» в Всемирной паутине.
URLClassLoader
Этот загрузчик классов используется для загрузки классов и ресурсов из пути поиска URL-адресов, ссылающихся как на JAR-файлы, так и на каталоги.
URLConnection
Абстрактный класс URLConnection является суперклассом всех классов, представляющих канал связи между приложением и URL-адресом.
URLDecoder
Утилитарный класс для декодирования HTML-форм.
URLEncoder
Утилитарный класс для кодирования HTML-форм.
URLPermission
Представляет разрешение на доступ к ресурсу или набору ресурсов, определяемых заданным URL, и для заданного набора настраиваемых пользователем методов запроса и заголовков запроса.
URLStreamHandler
Абстрактный класс URLStreamHandler — общий суперкласс для всех обработчиков протоколов потоков.
URLStreamHandlerFactory
Этот интерфейс определяет фабрику для URL обработчиков протоколов потоков.

© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/net/package-summary.html

Spec-Zone.ru

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