Книга: Программирование мобильных устройств на платформе .NET Compact Framework

Соединение равноправных узлов сети посредством IrDA

Соединение равноправных узлов сети посредством IrDA

Сетям с соединениями равноправных узлов предшествовали сети с двухточечными соединениями, и это — парафия IrDA. Передача данных на основе IrDA предоставляет в наше распоряжение простой и относительно широкополосный механизм обмена данными между находящимися рядом с другом устройствами. Несмотря на отсутствие того "блеска новизны", который свойствен таким технологиям персональных сетей, как Bluetooth, у IrDA имеются и свои достоинства — она апробирована, тестирована и проста в использовании. Если ваши пользователи не имеют ничего против установки двух устройств друг напротив друга, то IrDA прекрасно подойдет для удовлетворения нужд вашего приложения, связанных с сетевыми технологиями, основанными на соединении равноправных узлов.

IrDA — это зрелая технология, которая часто остается незамеченной и незаслуженно мало используется разработчиками приложений. По моему мнению, это можно объяснить тем, что многие просто не знают, насколько простой в применении и гибкой является эта технология на самом деле. В .NET Compact Framework возможности программирования IrDA предоставляются посредством интерфейса сокетов, аналогичного тому, который используется при передаче данных посредством сервиса TCP/IP (Internet). Основное, что отличает использование сокетов в Internet-технологиях от использования сокетов в IrDA, — это понятие "именованного порта" ("named port").

Когда используются стек протоколов TCP/IP и сокеты, каждой машине назначаются собственный IP-адрес (например, 200.198.126.81) и номера портов, которые разрешается использовать для связи. Серверы открывают порты, которые они хотят прослушивать для получения запросов. Клиентское устройство может запросить связь с сервером путем указания IP-адреса машины и номера порта, к которому необходимо подключиться. В случае связи посредством двухточечных соединений технологии IrDA порт IrDA одного из устройств ориентируется в сторону другого устройства, в связи с чем отпадает необходимость в использовании схем адресации для установления местонахождения сервера. Если приложение желает предоставить интерфейс сокета IrDA для передачи контактной информации о своем владельце, оно может открыть сокет IrDA, которому присвоено имя OwnerContactInfo. Аналогичным образом, если приложение, играющее роль фотоальбома, должно обеспечивать возможность загрузки фотографий другими приложениями, оно может открыть сокет IrDA с именем PhotoDownloadService. Клиентские приложения на других устройствах, желающие подключиться к этим службам, запрашивают их по именам.

Сеанс связи между Web-браузером и сервером осуществляется примерно таким образом:

1. Сервер: открывает порт 80 для прослушивания поступающих запросов.

2. Браузер: "Привет, сервер номер 200.198.126.81. Я могу подключиться к порту 80?"

3. Сервер: "Да, можешь. Предлагаю соединение с портом, которое можно использовать для передачи данных."

4. Браузер: использует предложенное соединение и начинает обмен данными, в результате чего загружается несколько файлов

Аналогичный сеанс связи с использованием сокетов поверх IrDA осуществлялся бы примерно таким образом:

1. Принимающее устройство: создает именованный порт ReceiveAppXYZData.

2. Передающее устройство. "Привет, я хотело бы установить соединение с устройством, прослушивающим порт ReceiveAppXYZData."

3. Принимающее устройство: "Да, я прослушиваю этот порт. Давай установим соединение."

4. Передающее устройство: использует предоставленное соединение и начинает общение, в результате чего осуществляется передача данных.

Связь с использованием сокетов посредством IrDA является простым и эффективным способом обмена информацией, если два устройства физически располагаются рядом друг с другом.

Оглавление книги


Генерация: 1.386. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз