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

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

Жанры

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

Салмре Иво

Шрифт:

 'ОБНОВЛЕНИЕ СОСТОЯНИЯ

 '==========================================

 setStatus(ReceiveStatus.NotDone_WaitingForSender)

 '---------------------------------

 'Открыть прослушивающее устройство

 '---------------------------------

 Try

m_wasListenerStopped = False

m_irListener = _

New System.Net.Sockets.IrDAListener(m_IrDAServiceName)

m_irListener.Start

 Catch eListener As System.Exception

m_errorDuringTransfer = "Error creating listener - " + _

eListener.Message

GoTo exit_sub_with_error

 End Try

 'Проверить, не поступила ли команда отменить выполнение

 If (m_wasListenerStopped = True) Then

GoTo exit_sub_with_abort

 End If

 '------------------

 'Принять соединение

 '------------------

 Try

'--------------------------------------------------------------------

'Выполнение будет приостановлено здесь до тех пор, пока устройство не

'начнет передавать информацию, или не будет остановлен объект

'прослушивания, выполняющийся в другом потоке)

'--------------------------------------------------------------------

irdaClient = m_irListener.AcceptIrDAClient

 Catch eClientAccept As System.Exception

'Если прослушивание остановлено другим потоком, инициировавшим отмену

'выполнения, будет сгенерировано исключение и управление будет

'передано сюда.

If (m_wasListenerStopped = True) Then

GoTo exit_sub_with_abort

End If

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

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

m_errorDuringTransfer = "Error accepting connection - " + _

eClientAccept.Message

GoTo exit_sub_with_error

 End Try

 'В этом месте возможны два состояния:

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

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

 ' (в этом случае приведенный ниже код сгенерирует исключение)

 'Проверить, не было ли отменено выполнение

 If (m_wasListenerStopped = True) Then

GoTo exit_sub_with_abort

 End If

 '==========================================

 'ОБНОВЛЕНИЕ СОСТОЯНИЯ

 '==========================================

 setStatus(ReceiveStatus.NotDone_Receiving)

 '-------------------------

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

 '-------------------------

 Try

irStreamIn = irdaClient.GetStream

 Catch exGetInputStream As System.Exception

m_errorDuringTransfer = "Error getting input stream - " + _

exGetInputStream.Message

GoTo exit_sub_with_error

 End Try

 'Приготовиться к получению данных!

 Const BUFFER_SIZE As Integer = 1024

 Dim inBuffer As Byte

 ReDim inBuffer(BUFFER_SIZE)

 Dim bytesRead As Integer

 Do

'Считать байты из порта IR

bytesRead = irStreamIn.Read(inBuffer, 0, BUFFER_SIZE)

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

If (bytesRead > 0) Then

outputStream.Write(inBuffer, 0, bytesRead)

End If

 Loop While (bytesRead > 0)

 outputStream.Flush 'Закончить запись любых выходных данных

 '==========================================

 'ОБНОВЛЕНИЕ СОСТОЯНИЯ: УСПЕШНО ВЫПОЛНЕНО

 '==========================================

 setStatus(ReceiveStatus.Done_Success)

 Return 'No errors

 '==========================================

 'ОШИБКА.

 '==========================================

exit_sub_with_abort:

 'ОБНОВЛЕНИЕ СОСТОЯНИЯ: Отменено (но не из-за ошибки)

 setStatus(ReceiveStatus.Done_Aborted)

 Return

exit_sub_with_error:

 'ОБНОВЛЕНИЕ СОСТОЯНИЯ: ОШИБКА!!!!

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

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

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

Геном хищника. Книга пятая

Гарцевич Евгений Александрович
5. Я - Легенда!
Фантастика:
рпг
фэнтези
попаданцы
6.00
рейтинг книги
Геном хищника. Книга пятая

Неучтенный элемент. Том 3

NikL
3. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 3

Монстр из прошлого тысячелетия

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

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

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

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри

Запечатанный во тьме. Том 2

NikL
2. Хроники Арнея
Фантастика:
уся
эпическая фантастика
фэнтези
5.00
рейтинг книги
Запечатанный во тьме. Том 2

На границе империй. Том 10. Часть 7

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

Журнал «Если», 2002 № 08

Андерсон Кевин Джей
114. Журнал Если
Фантастика:
научная фантастика
5.00
рейтинг книги
Журнал «Если», 2002 № 08

Ким

Киплинг Редьярд Джозеф
Приключения:
исторические приключения
7.62
рейтинг книги
Ким

Криптозой

Головачев Василий Васильевич
Фантастика:
научная фантастика
6.25
рейтинг книги
Криптозой

Оживший камень

Кас Маркус
1. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Оживший камень

Ваше Сиятельство 7

Моури Эрли
7. Ваше Сиятельство
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Ваше Сиятельство 7

Уникум

Поселягин Владимир Геннадьевич
1. Уникум
Фантастика:
альтернативная история
4.60
рейтинг книги
Уникум