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

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

Жанры

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

Салмре Иво

Шрифт:

m_errorDuringTransfer = "Error accepting connection - " + eClientAccept.Message;

goto exit sub_with error;

}

//B этом месте возможны два состояния:

//#1: Мы получили соединение от передающего устройства IR

//#2: IR-запрос был отменен (кто-то вызвал функцию STOP)

// (в этом случае приведенный ниже код сгенерирует исключение)

//Проверить, не было ли отменено выполнение

if (m_wasListenerStopped == true) {

goto exit_sub_with_abort;

}

//==========================================

//ОБНОВЛЕНИЕ
СОСТОЯНИЯ

//==========================================

setStatus(ReceiveStatus.NotDone_Receiving);

//-------------------------

//Открыть принимающий поток

//-------------------------

try {

irStreamIn = irdaClient.GetStream;

} catch (System.Exception exGetInputStream) {

m_errorDuringTransfer = "Error getting input stream - " + exGetInputStream.Message;

goto exit_sub_with_error;

}

//Приготовиться к получению данных!

const int BUFFER_SIZE = 1024;

byte[] inBuffer = new byte[BUFFER_SIZE];

int bytesRead = 0;

do {

//Считать байты из порта IR

bytesRead = irStreamIn.Read(inBuffer, 0, BUFFER_SIZE);

//Записать байты в наш выходной поток

if (bytesRead > 0) {

outputStream.Write(inBuffer, 0, bytesRead);

}

} while (bytesRead > 0);

outputStream.Flush; //Закончить запись любых выходных данных

//==========================================

//ОБНОВЛЕНИЕ СОСТОЯНИЯ: УСПЕШНО ВЫПОЛНЕНО

//==========================================

setStatus(ReceiveStatus.Done_Success);

return; //Ошибки отсутствуют

//==========================================

//ОШИБКА...

//==========================================

exit_sub_with_abort:

//ОБНОВЛЕНИЕ СОСТОЯНИЯ: Отменено (но не из-за ошибки)

setStatus(ReceiveStatus.Done_Aborted);

return;

exit_sub_with_error:

//ОБНОВЛЕНИЕ СОСТОЯНИЯ: ОШИБКА!!!!

setStatus(ReceiveStatus.Done_ErrorOccured);

 }

} //конец класса

Карты памяти

Прежде чем появились недорогие широко развертываемые сетевые технологии, существовало

понятие "сетей доставки ‘на своих двоих’" ("sneakernet"). Именно так шутливо называли перенос данных с одного компьютера на другой путем их сохранения на физических носителях, например магнитных дисках; роль сетевых транспортных средств играли люди, а роль пакетов — физические носители информации. При наличии замечательных сетевых технологий, доступных сегодня, легко забыть о том, насколько полезными могут быть физически перемещаемые хранилища информации. Во многих случаях наиболее быстрым практическим способом переноса больших объемов данных с одного компьютера или мобильного устройства на другой компьютер/устройство является запись данных в памяти карты и физический перенос карты на другое устройство.

Современные съемные карты памяти обладают ошеломляющей емкостью; 256 Мбайт — обычное явление, 512 Мбайт — не столь уж большая редкость, а карты памяти емкостью 1 Гбайт доступны по вполне разумной цене. Емкость карт памяти продолжает расти по экспоненциальному закону. На рынок поступают карты памяти в самом различном исполнении, в том числе ключи памяти, присоединяемые к разъемам USB, карты Compact Flash, которые без труда подключаются к разъемам PCMCIA лэптопов через недорогие переходники, и карты Secure Digital Большинство этих средств хранения данных после вставки их в мобильное устройство или компьютер ведут себя просто как съемный жесткий диск.

У подхода, основанного на сетях с доставкой данных "на своих двоих", имеется множество достоинств, делающих его удобным для передачи больших объемов данных. Такие развернутые на устройствах базы данных, как SQL СЕ, могут храниться на картах памяти и заполняться большими объемами фактических данных вместе с другими необходимыми данными, например изображениями. Карты памяти могут загружаться данными на компьютере, после чего эти данные можно выгружать на мобильные устройства, в соответствии с необходимостью; таким образом, одновременное подключение к сети и сервера, и клиента данных в данном случае не требуется. Рассматривая карты памяти как коммуникационный механизм, можно считать, что они представляют собой решение, основанное на пакетной обработке данных; карты памяти обеспечивают групповое перемещение больших объемов данных, но не поддерживают тех возможностей оперативного обновления данных, которые предоставляет сеть. Полезной является модель, в соответствии с которой карты памяти используются для первоначального перемещения многочисленных данных, минуя сеть, тогда как последующее обновление данных осуществляется посредством передачи их по сети. Карты памяти представляют собой коммуникационный механизм, технический уровень которого невысок, но это не может служить основанием для полного отказа от их использования. 

Принудительная перекачка информации на устройства

Тот факт, что значительная часть работы при обмене данными с использованием мобильных устройств сосредотачивается на мобильном устройстве, инициирующем сеанс связи с сервером, не является случайным. После установления соединения с сервером не составляет труда отправить данные на сервер или получить данные с сервера. В большинстве случае при связи с серверами используются такие абстракции, как сокеты или HTTP, построенные поверх протоколов Internet TCP/IP. В случае связи с использованием протоколов TCP/IP каждое устройство в сети имеет собственный IР-адрес. IP-адрес весьма напоминает телефонный номер, однако есть одна трудность, состоящая в том, что некоторые IP-адреса являются постоянными, другие — существуют длительное время, но есть и такие, срок действия которых весьма незначителен. Осознание непостоянства некоторых IP-адресов необходимо для понимания того, какие коммуникационные модели приемлемы для практического применения на мобильных устройствах, а какие — неприемлемы.

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

Обломов

Гончаров Иван Александрович
Проза:
классическая проза
русская классическая проза
8.78
рейтинг книги
Обломов

Феодал

Громов Александр Николаевич
Фантастика:
социально-философская фантастика
7.94
рейтинг книги
Феодал

Воплощение Похоти

Некрасов Игорь
1. Воплощение Похоти
Фантастика:
юмористическое фэнтези
попаданцы
рпг
аниме
5.00
рейтинг книги
Воплощение Похоти

Портрет дьявола: Собрание мистических рассказов

Скотт Вальтер
Проза:
классическая проза
8.09
рейтинг книги
Портрет дьявола: Собрание мистических рассказов

Телохранитель Генсека. Том 3

Алмазный Петр
3. Медведев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Телохранитель Генсека. Том 3

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник

Дважды одаренный. Том III

Тарс Элиан
3. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
юмористическое фэнтези
5.00
рейтинг книги
Дважды одаренный. Том III

Студиозус 2

Шмаков Алексей Семенович
4. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус 2

Я еще не бог. Книга XXXV

Дрейк Сириус
35. Дорогой барон!
Фантастика:
аниме
попаданцы
5.00
рейтинг книги
Я еще не бог. Книга XXXV

Товарищ "Чума" 6

lanpirot
6. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 6

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

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

Винокуров Юрий
19. Кодекс Охотника
Фантастика:
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XIX

Я - злодейка в дораме. Сезон второй

Вострова Екатерина
2. Выжить в дораме
Фантастика:
уся
фэнтези
сянься
попаданцы
5.00
рейтинг книги
Я - злодейка в дораме. Сезон второй

#НенавистьЛюбовь

Джейн Анна
Любовные романы:
современные любовные романы
6.33
рейтинг книги
#НенавистьЛюбовь