Программирование мобильных устройств на платформе .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)
Поделиться:
Популярные книги
Печать Пожирателя
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Привет из Загса. Милый, ты не потерял кольцо?
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Мастер 2
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Нечто чудесное
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Клан
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Имя нам Легион. Том 3
3. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Запасная дочь
Фантастика:
фэнтези
6.40
рейтинг книги
Убивать чтобы жить 7
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
У врага за пазухой
5. Оголенные чувства
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
Кодекс Охотника. Книга XXI
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Генерал Скала и ученица
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Оцифрованный. Том 1
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Его маленькая большая женщина
Любовные романы:
современные любовные романы
эро литература
8.78
рейтинг книги
Хуррит
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00