Сайт разработчика Александр Климова

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Пакет java.net

Java поддерживает семейства протоколов TCP, UDP и т.д. В составе пакета java.net имеется множество классов, связанных с сетью. Рассмотрим часть из них.

Класс InetAddress

Класс InetAddress используется для работы с числовым IP-адресом или доменным именем. Поддерживаются адреса IPv4 и IPv6.

Чтобы создать объекта класса InetAddress, следует использовать один из многих доступных методов-фабрик, например.

  • static InetAddress getLocalHost() - возвращает объект класса InetAddress, представляющий локальный хост
  • static InetAddress getByName(String host) - возвращает объект класса InetAddress хоста по указанному имени
  • static InetAddress[] getAllByName(String host) - возвращает массив объект класса InetAddress, представляющий все адреса, в которое преобразуется конкретное имя

Некоторые методы класса:

  • byte[] getAddress() - возвращает байтовый массив, представляющий IP-адрес в порядке байтов сети
  • String getHostAddress() - возвращает строку, представляющую адрес хоста, ассоциированного с объектом класса InetAddress
  • String getHostName() - возвращает строку, представляющую имя хоста, ассоциированного с объектом класса InetAddress

Также существуют два подкласса - Inet4Address и Inet6Address. В большинстве случаев вы можете использовать класс InetAddress, поскольку класс приспособлен для обоих стилей.

Класс ServerSocket

Класс ServerSocket является слушателем и ожидает подключения клиентов. Класс предназначен для серверов.

Класс Socket

Класс Socket предназначен для клиентов.

URL

Класс URL представляет специальный интерфейс для доступа к информации по всей сети.

Класс URLConnection

Класс URLConnection предназначен для доступа к ресурсам на удалённом сервере. Установив соединение, вы можете просматривать свойства объекта.

Методы:

  • int getContentLength() - возвращает размера в байтах содержимого объекта. Если размер недоступен, то возвращается -1
  • long getContentLenghLong() - возвращает размера в байтах содержимого объекта. Если размер недоступен, то возвращается -1
  • String getContentType() - возвращает тип содержимого по заголовку content-type или null
  • long getDate() - возвращает время и дату ответа в миллисекундах
  • InputStream getInputStream() - возвращает объект класса InputStream, который можно использовать для получения содержимого ресурса

Класс HttpURLConnection

Класс HttpURLConnection является подклассом класса URLConnection и обеспечивает поддержку соединений по протоколу HTTP.

Некоторые методы класса:

  • static boolean getFollowRedirects() - возвращает true, если автоматически следует перенаправление
  • String getRequestMethod() - возвращает строковое представление метода выполнения запроса. По умолчанию используется метод GET
  • int getResponseCode() - возвращает код ответа HTTP
  • String getResponseMessage() - возвращает сообщение ответа, ассоциированное с кодом ответа
  • void setRequestMethod(String method) - устанавливает метод, которым выполняются запросы HTTP. По умолчанию принят метод GET

Пример использования

ServerSocket

DatagramSocket

DatagramPacket

Реклама