Spec-Zone.ru › OpenJDK 25

Package 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(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.

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

  • Системные свойства сети
Начиная с:
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 от политики их принятия и отклонения.
CookiePolicy
Реализации CookiePolicy определяют, какие файлы cookie следует принимать, а какие отклонять.
CookieStore
Объект CookieStore представляет хранилище файлов cookie.
DatagramPacket
Этот класс представляет пакет датаграммы.
DatagramSocket
Этот класс представляет сокет для отправки и получения пакетов датаграмм.
DatagramSocketImpl
Базовый абстрактный класс реализации датаграммных и многоадресных сокетов.
DatagramSocketImplFactory
Этот интерфейс определяет фабрику реализаций датаграммных сокетов.
FileNameMap
Простой интерфейс, предоставляющий механизм сопоставления имени файла со строкой типа MIME.
HttpCookie
Объект HttpCookie представляет cookie HTTP, которое передаёт информацию о состоянии между сервером и пользовательским агентом.
HttpRetryException
Выбрасывается, если HTTP-запрос необходимо повторить, но его нельзя повторить автоматически из-за включённого потокового режима.
HttpURLConnection
URLConnection с поддержкой функций, специфичных для HTTP.
IDN
Предоставляет методы для преобразования интернационализированных доменных имён (IDN) между обычным представлением Unicode и представлением ASCII Compatible Encoding (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 Устарело, для удаления: этот элемент API может быть удалён в будущей версии.
Это разрешение нельзя использовать для управления доступом к ресурсам, поскольку Security Manager больше не поддерживается.
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
Выбрасывается при ошибке создания сокета или доступа к нему.
SocketImpl
Абстрактный класс SocketImpl является общим суперклассом всех классов, непосредственно реализующих сокеты.
SocketImplFactory
Этот интерфейс определяет фабрику реализаций сокетов.
SocketOption<T>
Параметр сокета, связанный с сокетом.
SocketOptions
Интерфейс методов для получения и задания параметров сокета.
SocketPermission
Этот класс представляет доступ к сети через сокеты.
SocketTimeoutException
Сигнализирует о превышении времени ожидания при чтении из сокета или вызове accept.
StandardProtocolFamily
Определяет стандартные семейства протоколов связи.
StandardSocketOptions
Определяет стандартные параметры сокетов.
UnixDomainSocketAddress
Адрес доменного сокета Unix.
UnknownHostException
Выбрасывается, если не удалось определить IP-адрес узла.
UnknownServiceException
Выбрасывается при возникновении исключения, связанного с неизвестной службой.
URI
Представляет ссылку на универсальный идентификатор ресурса (URI).
URISyntaxException
Проверяемое исключение, выбрасываемое, если строку не удалось разобрать как ссылку URI.
URL
Класс URL представляет универсальный указатель ресурса — указатель на «ресурс» во Всемирной паутине.
URLClassLoader
Этот загрузчик классов используется для загрузки классов и ресурсов из пути поиска URL, указывающих как на файлы JAR, так и на каталоги.
URLConnection
Абстрактный класс URLConnection является суперклассом всех классов, представляющих канал связи между приложением и URL.
URLDecoder
Вспомогательный класс для декодирования данных HTML-форм.
URLEncoder
Вспомогательный класс для кодирования данных HTML-форм.
URLPermission Устарело, для удаления: этот элемент API может быть удалён в будущей версии.
Это разрешение нельзя использовать для управления доступом к ресурсам, поскольку Security Manager больше не поддерживается.
URLStreamHandler
Абстрактный класс URLStreamHandler является общим суперклассом всех обработчиков потоковых протоколов.
URLStreamHandlerFactory
Этот интерфейс определяет фабрику обработчиков потоковых протоколов URL.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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