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

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

Жанры

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

Салмре Иво

Шрифт:

irDASender = _

New System.Net.Sockets.IrDAClient(m_IrDAServiceName)

Catch eCreateClient As System.Exception

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

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

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

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

errorDescription = eCreateClient.Message

Return False

End Try

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

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

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

If (m_wasSenderStopped = True) Then

irDASender.Close

irDASender = Nothing

Return False

End If

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

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

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

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

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

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

 streamOutToIrDA = irDASender.GetStream

 Const BUFFER_SIZE As Integer = 1024

 Dim inBuffer As Byte

 ReDim inBuffer(BUFFER_SIZE)

 Dim bytesRead As Integer

 Dim iTestAll As Integer

 Dim iTestWrite As Integer

 ' Цикл...

 Do

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

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

iTestAll = iTestAll + 1

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

If (bytesRead > 0) Then

streamOutToIrDA.Write(inBuffer, 0, bytesRead)

iTestWrite = iTestWrite + 1

End If

 Loop While (bytesRead > 0)

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

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

 streamOutToIrDA.Close 'Закрыть поток

 streamOutToIrDA = Nothing

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

 streamInFromFile.Close

 streamOutToIrDA = Nothing

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

 irDASender.Close

 irDASender = Nothing

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

 Return True

End Function

End Class

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

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

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

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

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

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

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

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

Public Class IrDAFileReceive

Private m_wasListenerStopped As Boolean

Private m_IrDAServiceName As String

Private m_fileNameForDownload As String

Private m_errorDurmgTransfer As String

Private m_irListener As System.Net.Sockets.IrDAListener

Private m ReceiveStatus As ReceiveStatus

Public ReadOnly Property ErrorText As String

 Get

Return m_errorDuringTransfer

 End Get

End Property

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

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

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

Public Enum ReceiveStatus

 NotDone_SettingUp

 NotDone_WaitingForSender

 NotDone_Receiving

 Done_Success

 Done_Aborted

 Done_ErrorOccured

End Enum

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

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

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

Public ReadOnly Property Status As ReceiveStatus

 Get

SyncLock (Me)

Return m_ReceiveStatus

End SyncLock

 End Get

End Property

Private Sub setStatus(ByVal newStatus As ReceiveStatus)

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

Адвокат Империи 2

Карелин Сергей Витальевич
2. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 2

Газлайтер. Том 19

Володин Григорий Григорьевич
19. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 19

Адвокат империи

Карелин Сергей Витальевич
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Адвокат империи

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

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

Обрыв

Гончаров Иван Александрович
Проза:
классическая проза
русская классическая проза
8.93
рейтинг книги
Обрыв

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Товарищ "Чума" 2

lanpirot
2. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 2

Наномашины, наследник! Том 9

Новиков Николай Васильевич
9. Первый среди карапузов
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наномашины, наследник! Том 9

Личный аптекарь императора

Карелин Сергей Витальевич
1. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Личный аптекарь императора

Газлайтер. Том 2

Володин Григорий
2. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 2

Мужчина моей судьбы

Ардова Алиса
2. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.03
рейтинг книги
Мужчина моей судьбы

Бастард Бога (Дилогия)

Матвеев Владимир
Фантастика:
альтернативная история
5.11
рейтинг книги
Бастард Бога (Дилогия)

Родословная. Том 3

Ткачев Андрей Юрьевич
3. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Родословная. Том 3

Мент

Константинов Андрей Дмитриевич
8. Бандитский Петербург
Детективы:
боевики
8.58
рейтинг книги
Мент