Язык программирования Java Андрей Дмитриев andrei-dmitriev@yandex.ru ©2009.

Презентация:



Advertisements
Похожие презентации
Сокеты TCP/IP Лекция Понятие сокета Если требуется получить доступ к сетевым операциям низкого уровня (класс URL обеспечивает выполнение только.
Advertisements

Работа с сетью Java Advanced. 2Georgiy KorneevJava Advanced / Работа с сетью Содержание Введение Адреса TCP-сокеты UDP-сокеты URI и URL Соединения Заключение.
Низкоуровневые операции в ИС. Сокеты в C#. Понятие сокета Если требуется получить доступ к сетевым операциям низкого уровня, в программе следует использовать.
Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 1 Основы программирования на языке Java Стандартная библиотека Java: java.net; Многопоточное программирование.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Корпоративные системы Лекция 3. Реализация архитектуры «Клиент- сервер» с использованием механизма сокетов.
Java: сетевое взаимодействие. Основы сетевого взаимодействия Сетевой адрес (ipv4 8bit.8bit.8bit.8bit или доменное имя) Порт (до 65535) Протокол (стек.
Java in pictures. Part 3.
UDP сокетыUDP сокетыПротокол пользовательских дейтаграмм(UDP) Протокол UDP намного проще, чем ТСР; он полезен в ситуациях, когда мощные механизмы обеспечения.
Сокеты в Perl и PHP. Сокеты в Perl Сокеты являются «конечными пунктами» в процессе обмена данными. Одни типы сокетов обеспечивают надежный обмен данными,
Saint Petersburg, 2012 Java Lecture #04 Part I - IO.
Сокеты Сети и системы телекоммуникаций Созыкин А.В.
СОКЕТЫ. СОКЕТ Сокет – программный интерфейс для обеспечения обмена данными между процессами. Впервые socket API появилась в BSD Unix. Описан в POSIX В.
Изучение динамического определения типов. Класс Class. Динамическая загрузка и инстанцирование классов. В Java вся информация о классе хранится в специальном.
Исключения в Java. Исключения – это механизм взаимодействия между кодом, приведшим к ошибке, и кодом, обрабатывающим ошибку Исключение выбрасывается (throw),
1 Ввод–вывод в Java Обобщенное понятие источника ввода относится к различным способам получения информации: к чтению дискового файла, символов с клавиатуры,
Язык Java. JSP.. Java. Синтаксис. Перевод строчки эквивалентен пробелу Регистр в именах различается // Комментарии до конца строки /* Многострочные комментарии.
Принцип работы и настройка FTP-клиентов. Принцип работы и настройка FTP-клиентов FTP (File Transfer Protocol) протокол, предназначенный для передачи файлов.
1 © Luxoft Training 2012 Java: расширенные вопросы Модуль #8.
TECHNOLOGIES Программирование Socket'ов Socket (гнездо, разъем) - абстрактное программное понятие, используемое для обозначения в прикладной.
Транксрипт:

Язык программирования Java Андрей Дмитриев ©2009

Возможности пакета java.net Клиент и сервер Потоки данных Обзор Java классов Применение к WWW

Клиент и сервер (1/2) Сервер подключается к порту на хосте и ждет соединения с клиентом; Клиент создает сокет и пытается соединить его с портом на хосте; Если создание сокета прошло успешно, то сервер переходит в режим ожидания команд от клиента; Клиент формирует команду и передает ее серверу, переходит в режим ожидания ответа; Сервер принимает команду, выполняет ее и пересылает ответ клиенту.

Клиент и сервер (2/2)

Класс Socket Конструктор Socket(String host, int port) устанавливает соединение между локальной машиной и указанным портом узла Internet, имя которого было передано конструктору. Этот конструктор может возбуждать исключения UnknownHostException и IOException. Конструктор Socket(InetAddress address, int port) То же самое, но: узел, с которым требуется установить соединение, задается не строкой, а объектом InetAddress. Этот конструктор может возбуждать только IOException.

Части адреса соединения Из объекта Socket в любое время можно извлечь информацию об адресе Internet и номере порта, с которым он соединен getInetAddress() возвращает объект InetAddress, связанный с данным объектом Socket getPort() возвращает номер порта на удаленном узле, с которым установлено соединение getLocalPort() возвращает номер локального порта, к которому присоединен данный объект

Потоки данных После того, как объект Socket создан, можно получить доступ к связанным с ним входному и выходному потокам. Эти потоки используются для приема и передачи данных точно так же, как и обычные потоки ввода-вывода (см. слайды «Потоки данных»): getInputStream() возвращает InputStream, связанный с данным объектом getOutputStream() возвращает OutputStream, связанный с данным объектом close() закрывает входной и выходной потоки объекта Socket

Пример: чтение числа import java.net.*; import java.io.*; public class TimeHost { public static void main(String args[]) throws Exception { int c; Socket s = new Socket("timehost.starwave.com", 880); InputStream in = s.getInputStream(); while ((c = in.read()) != -1) { System.out.print( (char) c); } s.close(); }

Класс ServerSocket Используется для создания сервера При создании, объект ServerSocket регистрирует себя в системе У класса есть дополнительный метод accept(), вызов которого блокирует поток исполнения до тех пор, пока какой- нибудь клиент не установит соединение по соответствующему порту После того, как соединение установлено, метод accept() возвращает вызвавшему его потоку объект Socket Конструктор ServerSocket(int port) создает сокет сервера для заданного порта. Конструктор ServerSocket(int port, int count) если этот порт занят, метод будет ждать его освобождения максимум count миллисекунд

Класс URL Uniform Resource Locators являются наиболее фундаментальным компонентом WWW. Класс предоставляет простую абстракцию для доступа к информации в Internet с помощью URL Конструкторы: URL(String spec) URL(String protocol, String host, int port, String file) URL(String protocol, String host, String file) URL(URL context, String spec)

Пример: класс URL import java.net.URL; public class MyURL { public static void main(String args[]) throws Exception { URL hp = new URL(" System.out. println("Protocol: " + hp.getProtocol()); System.out.printin("Port: " + hp.getPort()); System.out.println("Host: " + hp.getHost()); System.out.println("File: " + hp.getFile()); System.out.println("Ext: " + hp.toExternaLForm()); } Для того, чтобы извлечь реальную информацию, адресуемую данным URL, необходимо на основе URL создать объект URLConnection

Пример: класс URLConnection class localURL { public static void main(String args[]) throws Exception { int c; URL hp = new URL("http", " ", 80, "/"); URLConnection hpCon = hp.openConnection(); System.out.println("Date: " + hpCon.getDate()); System.out.println("Type: " + hpCon.getContentType()); System.out.println("Exp: " + hpCon.getExpiration()); System.out.println( "Last M: " + hpCon.getLastModified()); System.out.println("Length: " + hpCon.getContentLength()); InputStream input = hpCon.getInputStream(); int i=hpCon.getContentLength(); while (((c = input. read()) != -1) && (--i > 0)) { System.out.print((char) c); } input.close(); }

Q&A

Спасибо!

Язык программирования Java Андрей Дмитриев ©2009