Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
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) {
//Установить первым, чтобы код, выполняющийся другим потоком,
//был отменен, если он установлен
m_wasListenerStopped = true;
try {
m_irListener.Stop;
} catch {} //Поглотить любые возникающие ошибки
m_irListener = null;
}
}
private void internal_WaitForIRFileDownload(
ref System.IO.Stream outputStream,
ref System.Net.Sockets.IrDAClient irdaClient,
ref System.IO.Stream irStreamIn) {
//---------------------------------------------------------
//Открыть входной файл для направления в него потока данных
//---------------------------------------------------------
outputStream = System.IO.File.Open(m_fileNameForDownload, System.IO.FileMode.Create);
//==========================================
//ОБНОВЛЕНИЕ СОСТОЯНИЯ
//==========================================
setStatus(ReceiveStatus.NotDone_WaitingForSender);
//---------------------------------
//Открыть прослушивающее устройство
//---------------------------------
try {
m_wasListenerStopped = false;
m_irListener = new System.Net.Sockets.IrDAListener(m_IrDAServiceName);
m_irListener.Start;
} catch (System.Exception eListener) {
m_errorDuringTransfer = "Error creating listener - " + eListener.Message;
goto exit_sub_with_error;
}
//Проверить, не поступила ли команда отменить выполнение
if (m_wasListenerStopped == true) {
goto exit_sub_with abort;
}
//------------------
//Принять соединение
//------------------
try {
//--------------------------------------------------------------------
//Выполнение будет приостановлено здесь до тех пор, пока устройство не
//начнет передавать информацию, или не будет остановлен объект
//прослушивания, выполняющийся в другом потоке)
//--------------------------------------------------------------------
irdaClient = m_irListener.AcceptIrDAClient;
} catch (System.Exception eClientAccept) {
//Если прослушивание остановлено другим потоком, инициировавшим отмену
//выполнения, будет сгенерировано исключение и управление будет
//передано сюда.
if (m_wasListenerStopped == true) {
goto exit_sub_with_abort;
}
//Если прослушивание не было прекращено,
//то произошло иное исключение. Обработать его.
Поделиться:
Популярные книги
Третий Генерал: Тома I-II
1. Третий Генерал
Фантастика:
городское фэнтези
попаданцы
аниме
сказочная фантастика
5.00
рейтинг книги
Я еще князь. Книга XX
20. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Романов. Том 1 и Том 2
1. Романов
Фантастика:
фэнтези
попаданцы
альтернативная история
5.25
рейтинг книги
Туполев
1327. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Страж Кодекса. Книга IV
4. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Рассвет русского царства 3
3. Новая Русь
Фантастика:
историческое фэнтези
альтернативная история
5.00
рейтинг книги
Ефрейтор. Назад в СССР. Книга 2
2. Второй шанс
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Промышленникъ
3. Александр Агренев
Приключения:
исторические приключения
9.13
рейтинг книги
Солнечный флот
4. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Старшеклассник без клана. Апелляция кибер аутсайдера 2
2. Старшеклассник без клана. Апелляция аутсайдера
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Вечный. Книга II
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Неучтенный элемент. Том 12
12. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Черный Маг Императора 9
9. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кукловод
2. О чем молчат могилы
Фантастика:
боевая фантастика
8.50