Spec-Zone .ru
спецификации, руководства, описания, API
|
Сетевой API Java (java.net
) обеспечивает интерфейсы/классы для следующих функций:
Цель этого документа состоит в том, чтобы обеспечить общий обзор средств java.net
пакет обеспечивает. Для получения дополнительной информации об интерфейсах, классы, или фабрики, видят
java.net
обеспечивает следующие связанные с адресацией классы:
InetAddress
Inet4Address
Inet6Address
SocketAddress
InetSocketAddress
Для адресации IP обеспечиваются три класса: InetAddress
, Inet4Address
, и Inet6Address
. InetAddress
представляет IP-адрес, который является или 32-или 128-разрядным числом без знака, используемым IP, протоколом низшего уровня, на котором создаются протоколы как TCP и UDP. Представлять 32-разрядный адрес IPv4, Inet4Address
обеспечивается. (У адреса IPv4 есть знакомая форма nnn.nnn.nnn.nnn
, где n
целое число; например, 192.0.2.254
). Это - подкласс InetAddress
. Представлять 128-разрядные адреса IPv6, Inet6Address
обеспечивается. Это - также подкласс InetAddress
.
Для адресации сокета обеспечиваются два класса: SocketAddress
и InetSocketAddress
. SocketAddress
abstract
снабдите сокетом адрес, независимый от определенного протокола. Это предназначается для того, чтобы разделить на подклассы для определенного протокола. InetSocketAddress
ниже пример. InetSocketAddress
подкласс SocketAddress
; это представляет адрес сокета IP. Это может включать IP-адрес (например, 192.0.2.254
) и порт (например, 80
); имя узла (например, example.com
) и порт (например, 1000
); или порт только (например, 1010
). В последнем случае принимается подстановочный IP-адрес.
Эти классы связываются с созданием нормальных соединений TCP:
ServerSocket
Socket
Для простых соединений между клиентом и сервером, ServerSocket
и Socket
все, в чем Вы будете, вероятно, нуждаться.
ServerSocket
представляет сокет на сервере, который ожидает и прислушивается к запросам на службу от клиента. Socket
представляет конечные точки для передачи между сервером и клиентом. Когда сервер получает запрос на службу, он создает a Socket
для передачи с клиентом и продолжает прислушиваться к другим запросам на ServerSocket
. Клиент также создает a Socket
для передачи с сервером. Последовательность показывают ниже:
Как только соединение устанавливается, getInputStream()
и getOutputSteam()
может использоваться в передаче между сокетами
Следующее связывается с отправкой и получением пакетов дейтаграммы через UDP.
DatagramPacket
DatagramSocket
DatagramPacket
представляет пакет дейтаграммы. Пакеты дейтаграммы используются для поставки без установления соединения и обычно включают информация о порте и адрес получателя. DatagramSocket
сокет, используемый для отправки и получения пакетов дейтаграммы по сети через UDP. A DatagramPacket
отправляется от a DatagramSocket
вызывая send(...)
метод DatagramSocket
с DatagramPacket
как параметр: send(DatagramPacket dp)
. receive(DatagramPacket dp)
использование для того, чтобы получить a DatagramPacket
. ( MulticastSocket
class может использоваться для того, чтобы отправить/получить a DatagramPacket
mulitcast группе. Это - подкласс DatagramSocket
это добавляет функциональность для многоадресной передачи.)
Эти классы связываются с определением местоположения или идентификацией сетевых ресурсов:
URI
URL
URLClassLoader
URLConnection
URLStreamHandler
HttpURLConnection
JarURLConnection
Обычно используемые классы URI
, URL
, URLConnection
, и HttpURLConnection
.
URI
представляет Универсальный Идентификатор ресурса для ресурса; это - идентификатор для ресурса, но не обязательно локатора для того ресурса. URL
представляет Универсальный Локатор Ресурса для ресурса. URL являются подмножеством URI, хотя class URL
не подкласс URI
class. Короче говоря, URL говорит, как получить доступ к ресурсу, в то время как URI может, или не может. Универсальное Имя Ресурса (URN
) другое подмножество URI
. Никакой Java class не существует для этого.
URLConnection
абстрактный суперкласс всех классов, которые представляют соединение между приложением и сетевым ресурсом, идентифицированным a URL
. Данный a URL
и следовательно протокол, URL.openConnection()
возвращает экземпляр соответствующей реализации URLConnection
для протокола. (Протокол известен от URL
.) Экземпляр обеспечивает meansâ URLConnection.connect()
â , чтобы фактически открыть соединение и получить доступ URL
.
HttpURLConnection
обычно используемая реализация URLConnection
. Это для http
протокол, протокол используется для того, чтобы получить доступ к контенту на веб-серверах. В вышеупомянутой схеме, если протокол доступа для URL
были http
, тогда экземпляр HttpURLConnectio
n был бы возвращен openConnection()
метод.
Безопасность включает аутентификацию - и связанные с полномочиями классы. Аутентификация касается пользовательской аутентификации и включает проверку имени пользователя и пароля. Аутентификация пользователя может требоваться во многих ситуациях, такой как тогда, когда пользователь пытается получить доступ к URL. Полномочия касаются того, какие действия могут быть выполнены; например, если NetPermission
объект"setDefaultAuthenticator
"существует, затем вызывая метод Authenticator.setDefault(Authenticator a)
вызовет исключение безопасности.
Некоторые прокси и серверы источника запрашивают информацию аутентификации, используя схемы аутентификации такой в качестве ОСНОВНОЙ и ОБЗОР. Например, когда соединение с http через прокси и прокси требует аутентификации, мы вызываем Authenticator
class, чтобы получить имена пользователей, пароли, и другие элементы должен был аутентифицировать. Следующие классы касаются аутентификации:
Authenticator
PasswordAuthentication
В дополнение к методам для пользовательской аутентификации, abstract
class Authenticator
также имеет методы для того, чтобы запросить об аутентификации, которую требуют (см. getRequestingXXX()
). Это обычно разделяется на подклассы, и экземпляр подкласса регистрируется в системе, вызывая setDefault(Authenticator a)
. (Отметьте, что, если есть менеджер безопасности, он проверяет, чтобы видеть, что политика безопасности разрешает NetPermission
"setDefaultAthenticator
".) Затем, когда система требует аутентификации, она вызовет метод такой как requestPasswordAuthentication()
.
PasswordAuthentication
просто держатель данных для имени пользователя и пароля.
SocketPermission
NetPermission
A SocketPermission
состоит из узла, с дополнительным диапазоном порта, и рядом действий, которые могут быть выполнены на этом hostâ connect
, accept
, listen
и/или resolve
. Это включает методы, чтобы определить если один SocketPermission
равно другому или подразумевает другого Permission
. A SocketPermission
может быть включен в a PermissionCollection
для легкой проверки, если разрешение существует.
NetPermission
class для различных именованных сетевых полномочий. В настоящий момент есть три: setDefaultAuthenticator
, как упомянуто выше; requestPasswordAuthentication
; и specifyStreamHandler
. A NetPermission
может быть включен в a PermissionCollection
для легкой проверки, если разрешение существует.
Для получения дополнительной информации о полномочиях, см. тему Полномочий.