| |
воими руками”.
Однако на пути решения задачи с помощью расширения сервера Web вас поджидают
две неприятности. Во-первых, создать из программы красивый цветной графический
файл в стандарте GIF не так-то просто - вы должны разобраться с форматом этого
файла и создать все необходимые заголовки. Во-вторых, графический файл занимает
много места и передается по каналам Internet достаточно медленно - средняя
скорость передачи данных в Internet составляет 1 Кбайт в секунду.
В то же время файл с исходными данными может быть очень компактным.
Возникает вопрос - нельзя ли передавать через Internet только исходные данные,
а построение графической диаграммы выполнять на рабочей станции пользователя?
В этом заключается второй способ, который предполагает применение аплетов.
Ниже мы приведем исходные тексты соотвестсвующего аплета в разделе “Приложение
ShowChart”. Это приложение получает через сеть файл исходных данных, а затем на
основании содержимого этого файла рисует в своем окне цветную круговую
диаграмму. Объем передаваемых данных при этом по сравнению с использованием
расширения сервера Web сокращается десятки раз.
Помимо работы с файлами, расположенными на сервере Web, в этой главе мы
расскажем о создании каналов между приложениями Java, работающими на различных
компьютерах в сети, с использованием сокетов.
Сокеты позволяют организовать тесное взаимодействие аплетов и полноценных
приложений Java, при котором аплеты могут предавать друг другу данные через
сеть Internet. Это открывает широкие возможности для обработки информации по
схеме клиент-сервер, причем в роли серверов здесь может выступать любой
компьютер, подключенный к сети, а не только сервер Web. Каждая рабочая станция
может выступать одновременно и в роли сервера, и в роли клиента.
Адрес IP и класс InetAddress
Прежде чем начинать создание сетевых приложений для Internet, вы должны
разобраться с адресацией компьютеров в сети с протоколом TCP/IP, на базе
которого построена сеть Internet. Подробную информацию об адресации вы можете
получить из только что упомянутого 29 тома “Библиотеки системного программиста”.
Здесь мы приведем только самые необходимые сведения.
Все компьютеры, подключенные к сети TCP/IP, называются узлами (в
оригинальной терминологии узел - это host). Каждый узел имеет в сети свой адрес
IP, состоящий из четырех десятичных цифр в диапазоне от 0 до 255, разделенных
символом “точка “, например:
193.120.54.200
Фактически адрес IP является 32-разрядным двоичным числом. Упомянутые числа
представляют собой отдельные байты адеса IP.
Так как работать с цифрами удобно лишь компьютеру, была придумана система
доменных имен. При использовании этой системы адресам IP ставится в соответсвие
так называемый доменный адрес, такой как www.microsoft.com.
В сети Internet имеется распределенная по всему миру база доменных имен, в
которой установлено соответствие между доменными именами и адресами IP в виде
четырех чисел.
Для работы с адресами IP в библиотеке классов Java имеется класс InetAddress,
определение наиболее интересных методов которого приведено ниже:
public static InetAddress getLocalHost();
public static InetAddress getByName(String host);
public static InetAddress[] getAllByName(String host);
public byte[] getAddress();
public String toString();
public String getHostName();
public boolean equals(Object obj);
Рассмотрим применение этих методов.
Прежде всего вы должны создать объект класса InetAddress. Эта процедура
выполняется не с помощью оператора new, а с применением статических методов
getLocalHost, getByName и getAllByName.
Создание объекта класса InetAddress для локального узла
Метод getLocalHost создает объект класса InetAdd
|
|