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

Тут можно читать онлайн Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2006. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование мобильных устройств на платформе .NET Compact Framework
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2006
  • Город:
    Москва • Санкт-Петербург • Киев
  • ISBN:
    5-8459-0989-9
  • Рейтинг:
    4.22/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Программирование мобильных устройств на платформе .NET Compact Framework - описание и краткое содержание, автор Иво Салмре, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.

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

Программирование мобильных устройств на платформе .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)

Программирование мобильных устройств на платформе .NET Compact Framework - читать книгу онлайн бесплатно, автор Иво Салмре
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

//цикла и попытаемся найти сервер.

}

//Мы никогда не попадем в это место программы при выполнении

}

//Попытаться передать поток ввода-вывода (например, файл) посредством IR

//[возвращаемое значение]:

// true: успешная передача файла

// false: файл не был успешно передан

private bool sendStream(

out string errorDescription, ref System.IO.Stream streamOutToIrDA,

ref System.Net.Sockets.IrDAClient irDASender, ref System.IO.Stream streamInFromFile) {

errorDescription = "";

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

//Создание нового клиента IRDA

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

try {

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

//Возврат произойдет довольно быстро. Клиент будет выбран

//и возвращен, если прослушивающие клиенты отсутствуют.

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

irDASender = new System.Net.Sockets.IrDAClient(m_IrDAServiceName);

} catch (System.Exception eCreateClient) {

//B данном случае могло возникнуть несколько ситуаций:

//#1: отсутствуют прослушивающие устройства

//#2: прослушивающее устройство существует, но не реагирует

// (может отказаться от разговора)

errorDescription = eCreateClient.Message;

return false;

}

//B данном случае могло возникнуть несколько ситуаций:

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

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

if (m_wasSenderStopped == true) {

irDASender.Close();

irDASender = null;

return false;

}

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

//ПЕРЕДАТЬ ДАННЫЕ!

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

//Открыть файл, который мы хотим передать

streamInFromFile = System.IO.File.OpenRead(m_fileToSend);

//Открыть сокет IrDA, которому мы хотим передать данные

streamOutToIrDA = irDASender.GetStream();

const int BUFFER_SIZE = 1024;

byte[] inBuffer = new byte[BUFFER_SIZE];

int bytesRead;

int iTestAll = 0;

int iTestWrite = 0;

do {

//Считать байты из файла

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

iTestAll = iTestAll + 1;

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

if (bytesRead > 0) {

streamOutToIrDA.Write(inBuffer, 0, bytesRead);

iTestWrite = iTestWrite + 1;

}

} while (bytesRead > 0);

//Сбросить выходной поток

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

streamOutToIrDA.Close(); //Закрыть поток

streamOutToIrDA = null;

//Освободить локальный файл

streamInFromFile.Close();

streamOutToIrDA = null;

//Освободить порт IrDA

irDASender.Close();

irDASender = null;

//Успешное завершение!!!

return true;

}

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

Листинг 15.5. Класс IrDAFileReceive

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

//Обеспечивает прием файла через IrDA (инфракрасный порт).

//

//Этот класс НЕ является реентерабельным и не должен вызываться более

//чем одной функцией за один раз. Если необходимо иметь несколько

//сеансов связи через IR, это необходимо делать путем создания

//нескольких различных экземпляров данного класса.

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

public class IrDAFileReceive {

private bool m_wasListenerStopped;

private string m_IrDAServiceName;

private string m_fileNameForDownload;

private string m_errorDuringTransfer;

private System.Net.Sockets.IrDAListener m_irListener;

private ReceiveStatus m_ReceiveStatus;

public string ErrorText {

get {

return m_errorDuringTransfer;

}

}

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

//Различные состояния приема

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

public enum ReceiveStatus {

NotDone_SettingUp,

NotDone_WaitingForSender,

NotDone_Receiving,

Done_Success,

Done_Aborted,

Done_ErrorOccured

}

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

// Возвращает состояние передачи

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

public ReceiveStatus Status {

get {

//Обеспечить многопоточную безопасность для предотвращения

//параллельного выполнения операций чтения/записи

lock(this) {

return m_ReceiveStatus;

} //конец lock

} //конец get

} //конец свойства

private void setStatus(ReceiveStatus newStatus) {

//Обеспечить многопоточную безопасность для предотвращения

//параллельного выполнения операций чтения/записи

lock(this) {

m_ReceiveStatus = newStatus;

} //конец lock

}

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

// [in] filename: желаемое имя для входного файла IR

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

public IrDAFileReceive(string filename, string irdaServiceName) {

//Имя сокета IrDA, который мы хотим открыть

m_IrDAServiceName = irdaServiceName;

//Имя файла, в котором мы хотим сохранить полученные данные

m_fileNameForDownload = filename;

}

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

//Обеспечивает асинхронный прием файла через IR

//

// [in] filename: имя файла, в который осуществляется запись

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

public void WaitForIRFileDownloadAsync() {

//Заметьте, что сейчас мы находимся в режиме подготовки

setStatus(ReceiveStatus.NotDone_SettingUp);

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

//Создать новый поток

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

System.Threading.ThreadStart threadEntryPoint;

threadEntryPoint =

new System.Threading.ThreadStart(WaitForIRFileDownload);

System.Threading.Thread newThread = new System.Threading.Thread(threadEntryPoint);

//Запустить поток на выполнение

newThread.Start();

}

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

//Открывает порт IR и ожидает загрузки файла

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

public void WaitForIRFileDownload() {

System.IO.Stream outputStream = null;

System.Net.Sockets.IrDAClient irdaClient = null;

System.IO.Stream irStreamIn = null;

try {

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

//Задать и загрузить файл!

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

internal WaitForIRFileDownload(ref outputStream,ref irdaClient, ref irStreamIn);

} catch

//Поглотить любые возникающие ошибки

{

setStatus(ReceiveStatus.Done_ErrorOccured);

}

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

//Освободить все ресурсы

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

//Закрыть наш входной поток

if (irStreamIn != null) {

try {

irStreamIn.Close();

} catch {} //Поглотить любые возникающие ошибки

}

//Закрытие клиента IrDA

if (irdaClient != null) {

try {

irdaClient.Close();

} catch {} //Поглотить любые возникающие ошибки

}

//Закрыть файл, в который осуществлялась запись

if (outputStream != null) {

try {

outputStream.Close();

} catch {} //Поглотить любые возникающие ошибки

}

//Закрыть прослушивающее устройство, если оно выполняется

if (m_irListener != null) {

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Иво Салмре читать все книги автора по порядку

Иво Салмре - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Программирование мобильных устройств на платформе .NET Compact Framework, автор: Иво Салмре. Читайте комментарии и мнения людей о произведении.


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

Напишите свой комментарий
x