SlideShare a Scribd company logo
1 of 20
Сетевое взаимодействие
Виталий Унгурян
unguryan@itstep.org
Пакет java.net
Java поддерживает семейства
протоколов TCP, UDP и т.д.
В составе пакета java.net имеется
множество классов, связанных с сетью.
Класс InetAddress
Класс InetAddress используется
для работы с числовым IP-адресом
или доменным именем.
Поддерживаются адреса IPv4 и IPv6.
Класс InetAddress
Чтобы создать объекта класса
InetAddress, следует использовать
один из доступных методов-
фабрики.
Класс InetAddress
getLocalHost() - возвращает объект класса
InetAddress, представляющий локальный хост
getByName(String host) - возвращает объект
класса InetAddress хоста по указанному
имени
getAllByName(String host) - возвращает
массив объект класса InetAddress,
представляющий все адреса, в которое
преобразуется конкретное имя
Методы класса InetAddress
byte[] getAddress() - возвращает байтовый
массив, представляющий IP-адрес в порядке
байтов сети
String getHostAddress() - возвращает строку,
представляющую адрес хоста,
ассоциированного с объектом класса
InetAddress
String getHostName() - возвращает строку,
представляющую имя хоста, ассоциированного
с объектом класса InetAddress
Класс Socket
Класс Socket предназначен для
клиентских приложений.
Сокет - это программная
абстракция, используемая для
представления "терминалов"
соединения между двумя
машинами.
Класс ServerSocket
Класс ServerSocket является
слушателем и ожидает
подключения клиентов. Класс
предназначен для серверных
приложений.
Простейший сервер и клиент
Все, что делает сервер, это
ожидает соединения, затем
использует сокет, полученный при
соединении, для создания потоков
InputStream и OutputStream.
Простейший сервер и клиент
Клиент создает соединение с
сервером, затем создает
OutputStream. Клиент также
создает InputStream, чтобы
слушать, что отвечает сервер.
NIO
Стандартная редакция Java 2
(J2SE) в версии 1.4 ввела новые
библиотеки Ввода/Вывода (New
Input/Output — NIO),
предназначенные для реализации
высокопроизводительного
ввода/вывода в Java приложениях.
NIO
NIO использует модель
ввода/вывода значительно
отличающуюся от использованной
в первоначальных библиотеках
ввода/вывода.
NIO
select даёт вашему серверу
возможность обрабатывать
огромное количество данных
поступающих от множества
соединений.
NIO
select даёт вашему серверу
возможность обрабатывать
огромное количество данных
поступающих от множества
соединений.
NIO
NIO нацелена на решение
проблемы быстродействия.
NIO
Основным преимуществом буферов
является то, что они работают с
данными блоками. Вы можете читать и
записывать большие блоки данных, и
размер буферов, используемых при
этом, будет ограничен только размером
памяти, который вы готовы выделить
для них.
NIO
Служба select являются прекрасным
способом для работы одновременно с
большим количеством источников
данных. Она получила своё название от
системного вызова Unix — select(),
предоставляющего схожие возможности
программам на C, запущенным на Unix
системах.
AIO, NIO.2
В Java 7 появились механизмы для
обеспечения асинхронного сетевого
взаимодействия. Это каналы
java.nio.channels.AsynchronousSocketChannel
и
java.nio.channels.AsynchronousServerSocketCh
annel.
Данные каналы содержат методы для
неблокирующего установления соединения,
приема соединения, записи и чтения.
AIO, NIO.2
В Java 7 появились механизмы для
обеспечения асинхронного сетевого
взаимодействия. Это каналы
java.nio.channels.AsynchronousSocketChannel
и
java.nio.channels.AsynchronousServerSocketCh
annel. Данные каналы содержат методы для
неблокирующего установления соединения,
приема соединения, записи и чтения.

More Related Content

What's hot

Java. Многопоточность.
Java. Многопоточность.Java. Многопоточность.
Java. Многопоточность.Unguryan Vitaliy
 
Аннотации в java
Аннотации в javaАннотации в java
Аннотации в javaUnguryan Vitaliy
 
C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.Igor Shkulipa
 
Cookies, session и другое в JSP
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSPUnguryan Vitaliy
 
Java. Сборщик мусора. Работа с памятью.
Java.  Сборщик мусора. Работа с памятью. Java.  Сборщик мусора. Работа с памятью.
Java. Сборщик мусора. Работа с памятью. Unguryan Vitaliy
 
C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.Igor Shkulipa
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода выводаmetaform
 
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.Igor Shkulipa
 
C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.Igor Shkulipa
 
C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.Igor Shkulipa
 
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки.  ПеречисленияюJava. Введение в коллекции. Классы обертки.  Перечисленияю
Java. Введение в коллекции. Классы обертки. ПеречисленияюUnguryan Vitaliy
 
C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.Igor Shkulipa
 
Работа с БД в Java
Работа с БД в JavaРабота с БД в Java
Работа с БД в Javametaform
 
C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.Igor Shkulipa
 

What's hot (19)

Stream API
Stream APIStream API
Stream API
 
Java. Многопоточность.
Java. Многопоточность.Java. Многопоточность.
Java. Многопоточность.
 
Аннотации в java
Аннотации в javaАннотации в java
Аннотации в java
 
java 8
java 8java 8
java 8
 
C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.
 
Cookies, session и другое в JSP
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSP
 
JSP
JSPJSP
JSP
 
Java. Сборщик мусора. Работа с памятью.
Java.  Сборщик мусора. Работа с памятью. Java.  Сборщик мусора. Работа с памятью.
Java. Сборщик мусора. Работа с памятью.
 
C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода вывода
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.
 
Java. Методы
Java. Методы Java. Методы
Java. Методы
 
C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.
 
C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.
 
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки.  ПеречисленияюJava. Введение в коллекции. Классы обертки.  Перечисленияю
Java. Введение в коллекции. Классы обертки. Перечисленияю
 
C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.
 
Работа с БД в Java
Работа с БД в JavaРабота с БД в Java
Работа с БД в Java
 
C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.
 

Similar to Сетевое взаимодействие

МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3Dima Dzuba
 
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIПротокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIEkaterina Kuchinskaya
 
Лекция 6
Лекция 6Лекция 6
Лекция 6itc73
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...DevDay
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS Pavel Tsukanov
 
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человекаNETFest
 
инструментарий
инструментарийинструментарий
инструментарийigdweb
 
Память в Java. Garbage Collector
Память в Java. Garbage CollectorПамять в Java. Garbage Collector
Память в Java. Garbage CollectorOlexandra Dmytrenko
 
Delphix Dynamic Data Platform, как попробовать и правильно оценить решение
Delphix Dynamic Data Platform, как попробовать и правильно оценить решениеDelphix Dynamic Data Platform, как попробовать и правильно оценить решение
Delphix Dynamic Data Platform, как попробовать и правильно оценить решениеSergii Stukan
 
паттерны программирования
паттерны программированияпаттерны программирования
паттерны программированияguestfc8ae0
 
Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Dima Dzuba
 
Tarantool, .net, newsql
Tarantool, .net, newsqlTarantool, .net, newsql
Tarantool, .net, newsqlAnatoly Popov
 
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.UNETA
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Ontico
 
C# Desktop. Занятие 04.
C# Desktop. Занятие 04.C# Desktop. Занятие 04.
C# Desktop. Занятие 04.Igor Shkulipa
 
C# Desktop. Занятие 12.
C# Desktop. Занятие 12.C# Desktop. Занятие 12.
C# Desktop. Занятие 12.Igor Shkulipa
 
Мировые информационные ресурсы. Лекция 7
Мировые информационные ресурсы. Лекция 7Мировые информационные ресурсы. Лекция 7
Мировые информационные ресурсы. Лекция 7Dmitriy Krukov
 

Similar to Сетевое взаимодействие (20)

МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
 
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3
 
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIПротокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
 
Лекция 6
Лекция 6Лекция 6
Лекция 6
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS
 
Node.js (RichClient)
 Node.js (RichClient) Node.js (RichClient)
Node.js (RichClient)
 
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
 
инструментарий
инструментарийинструментарий
инструментарий
 
Память в Java. Garbage Collector
Память в Java. Garbage CollectorПамять в Java. Garbage Collector
Память в Java. Garbage Collector
 
Delphix Dynamic Data Platform, как попробовать и правильно оценить решение
Delphix Dynamic Data Platform, как попробовать и правильно оценить решениеDelphix Dynamic Data Platform, как попробовать и правильно оценить решение
Delphix Dynamic Data Platform, как попробовать и правильно оценить решение
 
паттерны программирования
паттерны программированияпаттерны программирования
паттерны программирования
 
Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10
 
Tarantool, .net, newsql
Tarantool, .net, newsqlTarantool, .net, newsql
Tarantool, .net, newsql
 
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)
 
C# Desktop. Занятие 04.
C# Desktop. Занятие 04.C# Desktop. Занятие 04.
C# Desktop. Занятие 04.
 
C# Desktop. Занятие 12.
C# Desktop. Занятие 12.C# Desktop. Занятие 12.
C# Desktop. Занятие 12.
 
Мировые информационные ресурсы. Лекция 7
Мировые информационные ресурсы. Лекция 7Мировые информационные ресурсы. Лекция 7
Мировые информационные ресурсы. Лекция 7
 
Instalarea DSpace
Instalarea DSpaceInstalarea DSpace
Instalarea DSpace
 

More from Unguryan Vitaliy

Модульное тестирование.
Модульное тестирование. Модульное тестирование.
Модульное тестирование. Unguryan Vitaliy
 
Архитектурный шаблон MVC
Архитектурный шаблон MVCАрхитектурный шаблон MVC
Архитектурный шаблон MVCUnguryan Vitaliy
 
Работа в команде, управление программными проектами
Работа в команде, управление программными проектамиРабота в команде, управление программными проектами
Работа в команде, управление программными проектамиUnguryan Vitaliy
 
Системы контроля версий
Системы контроля версийСистемы контроля версий
Системы контроля версийUnguryan Vitaliy
 
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Unguryan Vitaliy
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoFUnguryan Vitaliy
 
Рефлексия в java
Рефлексия в javaРефлексия в java
Рефлексия в javaUnguryan Vitaliy
 
Java. Интерфейс Reference - типы ссылок
Java. Интерфейс Reference -  типы ссылокJava. Интерфейс Reference -  типы ссылок
Java. Интерфейс Reference - типы ссылокUnguryan Vitaliy
 
Java. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьJava. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьUnguryan Vitaliy
 
Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.Unguryan Vitaliy
 
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Unguryan Vitaliy
 

More from Unguryan Vitaliy (15)

Модульное тестирование.
Модульное тестирование. Модульное тестирование.
Модульное тестирование.
 
Архитектурный шаблон MVC
Архитектурный шаблон MVCАрхитектурный шаблон MVC
Архитектурный шаблон MVC
 
Работа в команде, управление программными проектами
Работа в команде, управление программными проектамиРабота в команде, управление программными проектами
Работа в команде, управление программными проектами
 
Системы контроля версий
Системы контроля версийСистемы контроля версий
Системы контроля версий
 
Принципы SOLID
Принципы SOLIDПринципы SOLID
Принципы SOLID
 
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoF
 
JSTL
JSTLJSTL
JSTL
 
XML
XMLXML
XML
 
Рефлексия в java
Рефлексия в javaРефлексия в java
Рефлексия в java
 
Java. Интерфейс Reference - типы ссылок
Java. Интерфейс Reference -  типы ссылокJava. Интерфейс Reference -  типы ссылок
Java. Интерфейс Reference - типы ссылок
 
Java. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьJava. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередь
 
Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.
 
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.
 
List - списки
List - списки List - списки
List - списки
 

Сетевое взаимодействие

  • 2. Пакет java.net Java поддерживает семейства протоколов TCP, UDP и т.д. В составе пакета java.net имеется множество классов, связанных с сетью.
  • 3. Класс InetAddress Класс InetAddress используется для работы с числовым IP-адресом или доменным именем. Поддерживаются адреса IPv4 и IPv6.
  • 4. Класс InetAddress Чтобы создать объекта класса InetAddress, следует использовать один из доступных методов- фабрики.
  • 5. Класс InetAddress getLocalHost() - возвращает объект класса InetAddress, представляющий локальный хост getByName(String host) - возвращает объект класса InetAddress хоста по указанному имени getAllByName(String host) - возвращает массив объект класса InetAddress, представляющий все адреса, в которое преобразуется конкретное имя
  • 6. Методы класса InetAddress byte[] getAddress() - возвращает байтовый массив, представляющий IP-адрес в порядке байтов сети String getHostAddress() - возвращает строку, представляющую адрес хоста, ассоциированного с объектом класса InetAddress String getHostName() - возвращает строку, представляющую имя хоста, ассоциированного с объектом класса InetAddress
  • 7. Класс Socket Класс Socket предназначен для клиентских приложений. Сокет - это программная абстракция, используемая для представления "терминалов" соединения между двумя машинами.
  • 8. Класс ServerSocket Класс ServerSocket является слушателем и ожидает подключения клиентов. Класс предназначен для серверных приложений.
  • 9.
  • 10. Простейший сервер и клиент Все, что делает сервер, это ожидает соединения, затем использует сокет, полученный при соединении, для создания потоков InputStream и OutputStream.
  • 11. Простейший сервер и клиент Клиент создает соединение с сервером, затем создает OutputStream. Клиент также создает InputStream, чтобы слушать, что отвечает сервер.
  • 12. NIO Стандартная редакция Java 2 (J2SE) в версии 1.4 ввела новые библиотеки Ввода/Вывода (New Input/Output — NIO), предназначенные для реализации высокопроизводительного ввода/вывода в Java приложениях.
  • 13. NIO NIO использует модель ввода/вывода значительно отличающуюся от использованной в первоначальных библиотеках ввода/вывода.
  • 14. NIO select даёт вашему серверу возможность обрабатывать огромное количество данных поступающих от множества соединений.
  • 15. NIO select даёт вашему серверу возможность обрабатывать огромное количество данных поступающих от множества соединений.
  • 16. NIO NIO нацелена на решение проблемы быстродействия.
  • 17. NIO Основным преимуществом буферов является то, что они работают с данными блоками. Вы можете читать и записывать большие блоки данных, и размер буферов, используемых при этом, будет ограничен только размером памяти, который вы готовы выделить для них.
  • 18. NIO Служба select являются прекрасным способом для работы одновременно с большим количеством источников данных. Она получила своё название от системного вызова Unix — select(), предоставляющего схожие возможности программам на C, запущенным на Unix системах.
  • 19. AIO, NIO.2 В Java 7 появились механизмы для обеспечения асинхронного сетевого взаимодействия. Это каналы java.nio.channels.AsynchronousSocketChannel и java.nio.channels.AsynchronousServerSocketCh annel. Данные каналы содержат методы для неблокирующего установления соединения, приема соединения, записи и чтения.
  • 20. AIO, NIO.2 В Java 7 появились механизмы для обеспечения асинхронного сетевого взаимодействия. Это каналы java.nio.channels.AsynchronousSocketChannel и java.nio.channels.AsynchronousServerSocketCh annel. Данные каналы содержат методы для неблокирующего установления соединения, приема соединения, записи и чтения.