Чтение онлайн

на главную - закладки

Жанры

Шрифт:
Блоки соединения и соединения

На рисунке 8.1 представлено схематичное изображение этапов, входящих в процесс создания и использования соединения. Эти этапы, которые мы перечислим позже, соотносятся с условным обозначением, показанным на рисунке 8.1.

Объект соединения содержит входной и выходной потоки для считывания и записи данных для ресурса, соответственно. На рисунке 8.1 схематично представлены взаимосвязи между соединением и его двумя потоками.

Рисунок 8.1.

Производящий соединения блок создает соединения с сетевыми ресурсами, анализируя поле схемы URI и привлекая помощь определенных сетевых классов для создания соответствующего типа транспортного механизма

— Приложение запрашивает класс Connector для открытия соединения с сетевым ресурсом.

— Фабричный метод Connector.open анализирует URI и возвращает объект Connection. Полученный объект Connection содержит ссылки на входной и выходной потоки к сетевому ресурсу.

— Приложение получает объект InputStream или OutputStream из объекта Connection.

— Приложение считывает данные из InputStream или записывает их в OutputStream в процессе своей обработки.

— Приложение закрывает Connection при завершении работы

Когда у вас установлено соединение, вы используете два потока для взаимодействия с сетевым ресурсом. Существует два аспекта при коммуникации с сетевым ресурсом

— анализ сообщения протокола;

— анализ полезной нагрузки сообщения — содержимого сообщения.

Например, если клиент устанавливает HTTP-соединение, он должен проанализировать синтаксис и семантику ответного сообщения протокола HTTP, возвращенного сервером. Сообщение HTTP передает некоторого рода содержимое, и клиент должен быть способен проанализировать содержимое соответствующим образом. Если, например, содержимое сообщения является данными HTML, клиент должен соответственно анализировать HTML содержимое. Если приложение не знает формата данных, переданных входящим потоком, оно не сможет правильно интерпретировать либо синтаксис, либо семантику содержимого потока.

Структура общих соединений MIDP определяет иерархию типов соединений, объединяющую природу различных видов потоковых соединений. То есть различные типы представляют различные протоколы, используемые соединениями. При использовании соответствующего типа соединения анализ и управление различными типами содержимого соединений становится проще. Например, HTTP-соединения являются основой сетевых коммуникаций в MIDP. Структура общих соединений определяет тип соединения, чей интерфейс поддерживает создание HTTP-запросов и анализ HTTP-откликов.

Классы и интерфейсы cтpyктypы общих соединений

Пакет javax.microedition.io определяет один класс и набор интерфейсов, которые представляют различные типы содержимого соединений. Класс Connector является единственным конкретным элементом в структуре общих соединений.

Вы должны использовать его для получения текущих соединений с ресурсами. Он действительно содержит фабричный метод, который создает различные типы структур соединений для поддержки различных протоколов.

Иерархия интерфейсов в структуре общих соединений определяет абстракции, которые характеризуют различные типы соединений, поддерживаемых блоком создания соединений. Эти интерфейсы предоставляют методы, которые облегчают приложениям управление общими типами соединений.

На рисунке 8.2 показана иерархия наследования интерфейсов MIDP, которые являются частью общей структуры соединений.

Рисунок 8.2. Каждый из типов соединений поддерживает определенный уровень абстракции, который отражается в каждом интерфейсе с помощью методов. Возможности увеличиваются, а абстрактность уменьшается по мере того, как вы двигаетесь вниз по иерархии. Все интерфейсы находятся в пакете javax.microedition.io

На самом верху иерархии находится интерфейс Connection. Как предполагает его название, он представляет наиболее общий, абстрактный тип соединения. Естественно, все остальные типы соединений происходят из него. Интерфейс Connection содержит только один-единственный метод

public void close

Как вы знаете, соединение будет уже открыто при его создании классом Connector, поэтому в интерфейсе нет метода ореn. При завершении соединения, однако, приложение должно закрыть его.

Прямые подинтерфейсы Connection представляют немного менее абстрактные типы соединений. По мере того как вы спускаетесь вниз с верхнего уровня иерархии соединений, интерфейс получает все большие возможности. Интерфейс InputConnection представляет поток данных соединения как InputStream, то есть поток данных с байтовой организацией. В таблице 8.1 показаны два его метода.

Таблица 8.1. Методы интерфейса InputConnection

Имя метода InputConnection — Описание

DatalnputStream openDatalnputStream  — Открывает и возвращает DatalnputStream, который соединяется с сетевым ресурсом, связанным с этим соединением

InputStream openlnputStream — Открывает и возвращает InputStream, который соединяется с сетевым ресурсом, связанным с данным соединением

Эти методы возвращают типы объектов InputStream. Вспомните, что DatalnputStream является подклассом InputStream. Смысл заключается в том, что вы можете получить потоки, способствующие преобразованию данных в байтовые данные. Если вы желаете интерпретировать данные другим способом, ваша задача — создать подходящее «преобразование», которое позволит вам получать доступ и интерпретировать данные желаемым образом.

Поделиться:
Популярные книги

Незримый гений

Kay Blue Eyes
Любовные романы:
исторические любовные романы
7.00
рейтинг книги
Незримый гений

Последний вздох. Гепталогия

Тарарев Юрий
Последний вздох
Фантастика:
героическая фантастика
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Последний вздох. Гепталогия

Кодекс Охотника. Книга XXXL

Винокуров Юрий
42. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXL

История русского романа. Том 2

Коллектив авторов
2. История русского романа
Научно-образовательная:
прочая научная литература
культурология
5.00
рейтинг книги
История русского романа. Том 2

Жизнь и удивительные приключения Нурбея Гулиа - профессора механики

Никонов Александр Петрович
Документальная литература:
биографии и мемуары
публицистика
5.75
рейтинг книги
Жизнь и удивительные приключения Нурбея Гулиа - профессора механики

Косой дождь. Воспоминания

Чёрная Людмила Борисовна
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Косой дождь. Воспоминания

Нищий Король

Феликс Неизвестный
2. Закатиглазка
Фантастика:
фэнтези
юмористическая фантастика
5.00
рейтинг книги
Нищий Король

Миры Филипа Фармера. Том 4. Больше чем огонь. Мир одного дня

Фармер Филип Хосе
Фантастика:
научная фантастика
5.00
рейтинг книги
Миры Филипа Фармера. Том 4. Больше чем огонь. Мир одного дня

Антология сатиры и юмора России XX века. Том 12. Тэффи

Лохвицкая Надежда Александровна
Юмор:
юмористическая проза
5.00
рейтинг книги
Антология сатиры и юмора России XX века. Том 12. Тэффи

Тот, кто знает. Книга вторая. Перекресток

Маринина Александра
1. Преступления правильной жизни
Детективы:
прочие детективы
7.91
рейтинг книги
Тот, кто знает. Книга вторая. Перекресток

80000 кіламетраў пад вадой

Верн Жуль
Приключения:
морские приключения
5.00
рейтинг книги
80000 кіламетраў пад вадой

Зеркало времени

Пащенко Николай
Проза:
военная проза
историческая проза
5.00
рейтинг книги
Зеркало времени

Вторая Фаза

Кораблев Родион
27. Другая сторона
Фантастика:
боевая фантастика
рпг
фантастика: прочее
постапокалипсис
попаданцы
5.00
рейтинг книги
Вторая Фаза

Рубиновый лес. Дилогия

Гор Анастасия
Фантастика:
фэнтези
5.00
рейтинг книги
Рубиновый лес. Дилогия