Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

Лекция 2. Основы объектно-ориентированного программирования

Лекция 3. Лексика языка

Лекция 4. Типы данных

Лекция 5. Имена. Пакеты

Лекция 6. Объявление классов

Лекция 7. Преобразование типов

Лекция 8. Объектная модель в Java

Лекция 9. Массивы

Лекция 10. Операторы и структура кода. Исключения

Лекция 11. Пакет java.awt

Лекция 12. Потоки выполнения. Синхронизация

Лекция 13. Пакет java.lang

Лекция 14. Пакет java.util

Лекция 15. Пакет java.io

Лекция 16. Введение в сетевые протоколы

ftp://myserver.ru/pub/docs/Java/JavaCourse.txt

Затем можно воспользоваться методом openStream(), который воз­вращает InputStream, что позволяет считать содержимое ресурса. Напри-

569

мер, следующая программа при помощи LineNumberReader считывает первую страницу сайта http://www.ru и выводит ее на консоль.

import java.io.*; importjava.net.*;

public class Net {

public static void main(String args[]) { try {

URL uri = new URL("http://www.ru"); LineNumberReader r = new LineNumberReader(new

lnputStreamReader(url.openStream())); String s = r.readLine(); while (s!=null) {

System.out.println(s);

s = r.readьneO;

}

System.out. println(r.getLineNumber()); r.close();

} catch (MalformedURLException e) {

e. printStackTrace( ) ; } catch (lOException e) {

e. printStackTrace() ;

}

}

}

Из примера мы видим, что работа с сетью, как и работа с потоками, требует дополнительной работы с исключительными ситуациями. Ошиб­ка MalformedURLException появляется в случае, если строка с URL со­держит ошибки.

Более функциональным классом является URLConnection, который можно получить с помощью метода класса URL.openConnectionQ. У этого класса есть два метода - getlnputStream() (именно с его помощью работа­ет URL.openStreamO) и getOutputStream(), который можно использовать для передачи данных на сервер, если он поддерживает такую операцию (многие публичные web-серверы закрыты для таких действий).

Класс URLConnection является абстрактным. Виртуальная машина предоставляет реализации этого класса для каждого протокола, например, в том же пакете java.net определен ктасс HttpURLConnection. Понятно, что классы URL и URLConnection предоставляют возможность работы че­рез сеть на прикладном уровне с помощью высокоуровневых протоколов.

naKeTJava.net также предоставляет доступ к протоколам более низко­го уровня - TCP и UDP. Для этого сначала надо ознакомиться с классом InetAddress, который является Internet-адресом, или IP. Экземпляры этого класса создаются не с помощью конструкторов, а с помощью статических методов:

InetAddress getLocalHost() InetAddress getByName(String name) lnetAddress[] getAIIByName(String name)

Первый метод возвращает IP-адрес машины, на которой исполняется Java-программа