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

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

Жанры

Программирование мобильных устройств на платформе .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-адресов необходимо для понимания того, какие коммуникационные модели приемлемы для практического применения на мобильных устройствах, а какие — неприемлемы.

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

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

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

Сильнейший Столп Империи. Книга 1

Ермоленков Алексей
1. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 1

Охотник за головами

Вайс Александр
1. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Охотник за головами

Двойник Короля

Скабер Артемий
1. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля

Я до сих пор не князь. Книга XVI

Дрейк Сириус
16. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я до сих пор не князь. Книга XVI

Старая школа рул

Ромов Дмитрий
1. Второгодка
Фантастика:
альтернативная история
6.00
рейтинг книги
Старая школа рул

Гримуар темного лорда VII

Грехов Тимофей
7. Гримуар темного лорда
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда VII

Третий. Том 6

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
фантастика: прочее
попаданцы
5.00
рейтинг книги
Третий. Том 6

Князь Андер Арес 3

Грехов Тимофей
3. Андер Арес
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Князь Андер Арес 3

Зайти и выйти

Суконкин Алексей
Проза:
военная проза
5.00
рейтинг книги
Зайти и выйти

Двойник Короля 8

Скабер Артемий
8. Двойник Короля
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Двойник Короля 8

И.Бабель. Воспоминания современников

Паустовский Константин Георгиевич
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
И.Бабель. Воспоминания современников

Я не князь. Книга XIII

Дрейк Сириус
13. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я не князь. Книга XIII

Технарь

Муравьёв Константин Николаевич
1. Технарь
Фантастика:
космическая фантастика
попаданцы
7.13
рейтинг книги
Технарь