Сетевое взаимодействие
-
Upload
unguryan-vitaliy -
Category
Education
-
view
37 -
download
4
Transcript of Сетевое взаимодействие
Сетевое взаимодействие
Виталий Унгурян [email protected]
Пакет 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() - возвращает строку, представляющую адрес хоста, ассоциированного с объектом класса InetAddressString 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.AsynchronousServerSocketChannel. Данные каналы содержат методы для неблокирующего установления соединения, приема соединения, записи и чтения.
AIO, NIO.2
В Java 7 появились механизмы для обеспечения асинхронного сетевого взаимодействия. Это каналы java.nio.channels.AsynchronousSocketChannel и java.nio.channels.AsynchronousServerSocketChannel. Данные каналы содержат методы для неблокирующего установления соединения, приема соединения, записи и чтения.