Сетевые классы и интерфейсы. Класс InetAddress.



Язык Java делает сетевое программирование простым благодаря наличию специальных средств и классов. Большинство этих классов находится в пакете java.net. Сетевые классы имеют методы для установки сетевых соединений передачи запросов и сообщений. Многопоточность позволяет обрабатывать несколько соединений. Сетевые приложения используют Internet-приложения, к которым относятся Web-браузер, e-mail, сетевые новости, передача файлов. Для создания таких приложений используются сокеты, порты, протоколы TCP/IP, UDP.

Каждый компьютер из подключенных к сети по протоколу TCP/IP имеет уникальный IP-адрес, используемый для идентификации и установки соединения. Это 32-битовое число, обычно записываемое как четыре числа, разделенные точками, каждое из которых изменяется от 0 до 255. IP-адрес может быть временным и выделяться динамически для каждого подключения или быть постоянным, как для сервера. IP-адреса используются во внутренних сетевых системах. Обычно при подключении к Internet вместо числового IP-адреса используются символьные имена (например: www.bsu.by), называемые именами домена. Специальная программа DNS (Domain Name Server), располагаемая на отдельном сервере, проверяет адрес и преобразует имя домена в числовой IP-адрес. Если в качестве сервера используется этот же компьютер без сетевого подключения, в качестве IP-адреса указывается 127.0.0.1 или localhost.

Определить IP-адрес в приложеннии можно с помощью объекта класса InetAddress из пакета java.net.

Класс InetAddress не имеет public -конструкторов. Создать объект класса можно с помощью статических методов. Метод getLocalHost() возвращает объект класса InetAddress, содержащий IP-адрес и имя компьютера, на котором выполняется программа. Метод getByName(String host) возвращает объект класса InetAddress, содержащий IP-адрес по имени компьютера, используя пространство имен DNS. IP-адрес может быть временным, различным для каждого соединения, однако он остается постоянным, если соединение установлено. Метод getByAddress(byte[] addr) создает объект класса InetAddress, содержащий имя компьютера, по IP-адресу, представленному в виде массива байт. Если компьютер имеет несколько IP, то получить их можно методом getAllByName(String host),возвращающим массив объектов класса InetAddress. Если IP для данной машины один, то массив будет содержать один элемент. Метод getByAddress(String host, byte[] addr) создает объект класса InetAddress с заданным именем и IP-адресом, не проверяя существование такого компьютера. Все эти методы являются потенциальными генераторами исключительной ситуации UnknownHostException, и поэтому их вызов должен быть обработан с помощью throws для метода или блока try-catch. Проверить доступ к компьютеру в данный момент можно с помощью метода boolean isReachable(int timeout), который возвращает true, если компьютер доступен, где timeout – время ожидания ответа от компьютера в миллисекундах.

 

// Демонстрация применения InetAddress.

import java.net.*;


Дата добавления: 2015-12-17; просмотров: 19; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!