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

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

Жанры

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

Салмре Иво

Шрифт:

} саtch{};//Поглотить любую ошибку

streamOutToIrDA = null;

}

if (streamInFromFile != null) {

try {

streamInFromFile.Close;

} catch{};//Поглотить любую ошибку

streamInFromFile = null;

}

if (irDASender != null) {

try {

irDASender.Close;

} catch{}; //Поглотить любую ошибку

irDASender = null;

}

return; //Выход

}

//Проверить успешность выполнения

if (bSuccess == true) {

m_descriptionOfLastSendAttempt = "Success!";

setStatus(SendStatus.Finished_Successfully);

return;

}

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

if (m_wasSenderStopped == true) {

m_descriptionOfLastSendAttempt = "User Aborted.";

setStatus(SendStatus.Finished_Aborted);

return;

}

//B противном случае... Нам пока не удалось обнаружить сервер IrDA,

//имя которого совпадает с именем службы. Мы продолжим выполнение

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

}

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

 }

 //Попытаться передать поток ввода-вывода (например, файл) посредством 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; //Закончить запись любых данных

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

Бандит

Щепетнов Евгений Владимирович
1. Петр Синельников
Фантастика:
фэнтези
7.92
рейтинг книги
Бандит

Черный Маг Императора 20

Герда Александр
20. Черный маг императора
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Черный Маг Императора 20

Война

Валериев Игорь
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
5.25
рейтинг книги
Война

Черный Маг Императора 23

Герда Александр
23. Черный маг императора
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Черный Маг Императора 23

Седьмая встреча

Вассму Хербьёрг
Проза:
современная проза
4.00
рейтинг книги
Седьмая встреча

День поминовения

Нотебоом Сэйс
Проза:
современная проза
5.00
рейтинг книги
День поминовения

Ученик. Книга вторая

Первухин Андрей Евгеньевич
2. Ученик
Фантастика:
фэнтези
5.40
рейтинг книги
Ученик. Книга вторая

Я снова не князь! Книга XVII

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

Лев Толстой

Шкловский Виктор Борисович
363. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Лев Толстой

Чужак из ниоткуда 2

Евтушенко Алексей Анатольевич
2. Чужак из ниоткуда
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужак из ниоткуда 2

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый

Кодекс Охотника XXXI

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

Слово мастера

Лисина Александра
11. Гибрид
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Слово мастера