Работа с сетью Java Advanced. 2Georgiy KorneevJava Advanced / Работа с сетью Содержание Введение Адреса TCP-сокеты UDP-сокеты URI и URL Соединения Заключение.

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



Advertisements
Похожие презентации
Типовые расчёты Растворы
Advertisements

Сокеты TCP/IP Лекция Понятие сокета Если требуется получить доступ к сетевым операциям низкого уровня (класс URL обеспечивает выполнение только.
Michael Jackson
Ребусы Свириденковой Лизы Ученицы 6 класса «А». 10.
Язык программирования Java Андрей Дмитриев ©2009.
Урок повторения по теме: «Сила». Задание 1 Задание 2.
UDP сокетыUDP сокетыПротокол пользовательских дейтаграмм(UDP) Протокол UDP намного проще, чем ТСР; он полезен в ситуациях, когда мощные механизмы обеспечения.
Школьная форма Презентация для родительского собрания.
1 (с) ИТЛаб, ННГУ, ВМК, 2003г Java 2 Micro Edition Жерздев С.В. Java 2 Micro Edition Лаборатория информационных технологий (ИТЛаб) При поддержке фирмы.
Сокеты Сети и системы телекоммуникаций Созыкин А.В.
1 Протоколы Интернета Протокол – это набор соглашений и правил, определяющих порядок обмена информацией в компьютерной сети. Протокол TCP/IP (1974) TCP.

Компьютерные сети. Клиент-серверная архитектура Локальные компьютерные сети «общая шина»«кольцо» «звезда» «дерево»
COLLADA COLLAborative Design Activity Клишин Алексей, 8409.
Низкоуровневые операции в ИС. Сокеты в C#. Понятие сокета Если требуется получить доступ к сетевым операциям низкого уровня, в программе следует использовать.
1. Определить последовательность проезда перекрестка
Масштаб 1 : 5000 Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.

Масштаб 1 : 5000 Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
– создание ARPANet (Advanced Reseach Projects Agency- агенство перспективных исследований) для военных целей США 1973 – подключение Англии и.
Транксрипт:

Работа с сетью Java Advanced

2Georgiy KorneevJava Advanced / Работа с сетью Содержание Введение Адреса TCP-сокеты UDP-сокеты URI и URL Соединения Заключение

Введение Часть 1

4Georgiy KorneevJava Advanced / Работа с сетью Стек протоколов

5Georgiy KorneevJava Advanced / Работа с сетью Internet Protocol Идентификация адресата IP-адрес Порт

6Georgiy KorneevJava Advanced / Работа с сетью Transmission Control Protocol Двусторонний канал с гарантией доставки

7Georgiy KorneevJava Advanced / Работа с сетью User Datagram Protocol Односторонний канал без гарантии доставки

Адреса Часть 2

9Georgiy KorneevJava Advanced / Работа с сетью Интернет-адрес Представляет пару IP-адрес – доменное имя

10Georgiy KorneevJava Advanced / Работа с сетью Получение интернет-адресов Фабричные методы класса InetAddress InetAddress getByName(String) – любой по доменному имени InetAddress[] getAllByName(String) – все по доменному имени InetAddress getByAddress(byte[]) – по IP-адресу InetAddress getByAddress(String, byte[]) – по доменному имени и IP-адресу InetAddress getLocalHost() – адрес текущего компьютера

11Georgiy KorneevJava Advanced / Работа с сетью Методы интернет-адресов Работа с DNS String getHostName() – получение доменного имени String getCanonicalHostName() – получение полного доменного имени Работа с IP-адресом byte[] getAddress() – получение IP-адреса String getHostAddress() – получение IP-адреса в текстовой форме Прочие isReachable(int timeout) – проверка достижимости

12Georgiy KorneevJava Advanced / Работа с сетью Адрес порта Представляет пару интернет-адрес – порт

13Georgiy KorneevJava Advanced / Работа с сетью Создание адресов порта Конструкторы класса InetSocketAddress InetSocketAddress(InetAddress, int port) – по адресу и порту InetSocketAddress(String, int port) – по доменному имени и порту

14Georgiy KorneevJava Advanced / Работа с сетью Методы адресов портов Информация об адресе getAddress() – получение интернет-адреса getHostName() – получение имени getPort() – получение порта

TCP-сокеты Часть 3

16Georgiy KorneevJava Advanced / Работа с сетью TCP-сокеты Применяются для связи по протоколу TCP Образуют два независимых потока данных Классы Socket – представляет TCP-соединение, создает TCP-соединение на стороне пользователя ServerSocket – создает TCP-соединения на стороне сервера

17Georgiy KorneevJava Advanced / Работа с сетью Создание соединения на клиенте Конструкторы класса Socket Socket(InetAddress, port) – по интернет-адресу Socket(String host, port) – по доменному имени Socket(InetAddress, port, InetAddress, port) – по заданному локальному адресу и порту Socket() – без установления соединения Методы класса Socket connect(SocketAddress, timeout?) – установить соединение

18Georgiy KorneevJava Advanced / Работа с сетью Ввод-вывод Потоки getInputStream() – входящий поток getOutputStream() – исходящий поток Закрытие потоков shutdownInput() – закрытие входящего потока и отбрасывание полученных данных shutdownOutput() – закрытие исходящего потока Проверка потоков isInputShutdown() – входящего потока isOutputShutdown() – исходящего потока

19Georgiy KorneevJava Advanced / Работа с сетью Получение информации Об удаленном конце getInetAddress() – интернет адрес getPort() – порт getRemoteSocketAddreess() – адрес порта Об локальном конце getLocalAddress() – интернет адрес getLocalPort() – порт getLocalSocketAddreess() – адрес порта

20Georgiy KorneevJava Advanced / Работа с сетью Закрытие соединения Соединение закрывается Методом close() сокета Методом close() потоков сокета При закрытии с удаленной стороны

21Georgiy KorneevJava Advanced / Работа с сетью Создание соединений на сервере Конструкторы класса ServerSocket ServerSocket(port) – по порту ServerSocket(port, backlog) – по порту, с указанием размера очереди ServerSocket() – без привязки Методы класса ServerSocket bind(SocketAddress) – по адресу порта bind(SocketAddress, backlog) – по адресу порта, с указанием размера очереди

22Georgiy KorneevJava Advanced / Работа с сетью Прием соединений на сервере Методы класса ServerSocket Socket accept() – ждет следующего клиента и создает соединение setSoTimeout() – установка времени ожидания getSoTimeout() – получение времени ожидания close() – окончание ожидание клиентов

UDP-сокеты Часть 4

24Georgiy KorneevJava Advanced / Работа с сетью UDP-сокеты Применяются для связи по протоколу UDP Классы DatagramPacket – UDP пакет DatagramSocket – UDP-сокет для приема и отсылки пакетов

25Georgiy KorneevJava Advanced / Работа с сетью Создание UDP-пакетов Для приема DatagramPacket(byte[], offset?, length) – по буферу Для отправки DatagramPacket(byte[], offset?, length, InetAddress, port) – по интернет-адресу и порту DatagramPacket(byte[], offset?, length, SocketAddress) – по адресу порта

26Georgiy KorneevJava Advanced / Работа с сетью Операции с UDP-пакетами Работа с данными getData()/setData() – буфер данных getOffset()/setOffset() – смещение данных getLength()/setLength() – длина данных Работа с адресами getAddress()/setAddress() – интернет-адрес getPort()/setPort() – порт getSocketAddress()/setSocketAddress() – адрес порта

27Georgiy KorneevJava Advanced / Работа с сетью Создание UDP-сокета Конструкторы класса DatagramSocket DatagramSocket(port) – по порту DatagramSocket(InetAddress, port) – по порту и адресу DatagramSocket(SocketAddress) – по адресу порта DatagramSocket() – без привязки Методы класса DatagramSocket bind(SocketAddress) – привязывает к адресу

28Georgiy KorneevJava Advanced / Работа с сетью Прием и отсылка UDP-пакетов Прием пакета receive(DatagramPacket) – ожидает получения пакета Отсылка пакета send(DatagramPacket) – отсылает пакет

URI и URL Часть 4

30Georgiy KorneevJava Advanced / Работа с сетью Uniform Resource Identifier Идентифицирует ресурс Общий URI [scheme:]scheme-specific-part[#fragment] Иерархический URI [#fragment] Класс URI

31Georgiy KorneevJava Advanced / Работа с сетью Создание URI Конструкторы класса URI URI(String) – по строке URI(scheme, ssp, fragment) – из крупных частей URI(sheme, userInfo, host, port, path, query, fragment) – из мелких частей Фабричные методы класса URI create(String) – по строке Из других объектов file.toURI() – из дескриптора файла url.toURI() – из URL Исключение URISyntaxException

32Georgiy KorneevJava Advanced / Работа с сетью Получение частей URI getScheme()scheme getSchemeSpecificPart()sheme-specific pat getUserInfo()userInfo getHost()host getPort()port getPath()path getQuery()query getFragment()fragment

33Georgiy KorneevJava Advanced / Работа с сетью Операции над URI Нормализация URI normalize() – нормалиовать URI Откладывание от базового URI URI resolve(URI base) URI resolve(String base) Взятие относительного URI URI relativize(URI base) Сравнение equals(Object)

34Georgiy KorneevJava Advanced / Работа с сетью Uniform Resource Locator Указывает местоположение ресурса Подмножество иерархических URI Класс URL

35Georgiy KorneevJava Advanced / Работа с сетью Создание URL Конструкторы класса URL URL(String) – по строке URL(protocol, host, file) – из крупных частей URL(protocol, host, port, file, path, query, fragment) – из мелких частей Из других объектов file.toURL() – из дескриптора файла uri.toURL() – из URI Исключение MalformedURLException

Соединения Часть 5

37Georgiy KorneevJava Advanced / Работа с сетью Соединения Позволяют оперировать с ресурсами, заданными URL

38Georgiy KorneevJava Advanced / Работа с сетью Жизненный цикл соединения 1. Открытие соединения url.openConnection() 2. Установка свойств соединения 3. Установка соединения connect() 4. Оперирование с соединением getInputStream()/getOutputStream() 5. Закрытие соединения close()

39Georgiy KorneevJava Advanced / Работа с сетью Поддерживаемые протоколы http – HTTP-ресурс https – HTTPS-ресурс ftp – FTP-файл file – локальный файл jar – файл внутри Jar

Заключение Часть 6

41Georgiy KorneevJava Advanced / Работа с сетью Ссылки Networking Fatures (guide) // Custom Networking (tutorial) // rking/index.html rking/index.html Uniform Resource Locators (URL) // Uniform Resource Identifiers (URI) //

42Georgiy KorneevJava Advanced / Работа с сетью Вопросы