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

Салмре Иво

Шрифт:

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;

}

//Если прослушивание не было прекращено,

//то произошло иное исключение. Обработать его.

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);

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

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

  • Читать дальше
  • 1
  • ...
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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