Spec-Zone.ru › OpenJDK 27

Пакет 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 Client.

Рекомендуется использовать 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 Client и 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 (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 Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Это разрешение нельзя использовать для управления доступом к ресурсам, поскольку Security Manager больше не поддерживается.
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, 2026, 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.

Spec-Zone.ru

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