Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework
Название: | Программирование мобильных устройств на платформе .NET Compact Framework | |
Автор: | Иво Салмре | |
Жанр: | Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Android, Прочие ОС, Программирование: прочее, .NET Framework | |
Изадано в серии: | неизвестно | |
Издательство: | Вильямс | |
Год издания: | 2006 | |
ISBN: | 5-8459-0989-9 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Программирование мобильных устройств на платформе .NET Compact Framework"
Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа* (Запрещенная организация в РФ) к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.
Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.
Читаем онлайн "Программирование мобильных устройств на платформе .NET Compact Framework". [Страница - 384]
End Sub
'----------------------------------------------------------------------
'Попытаться передать поток ввода-вывода (например, файл) посредством IR
'[возвращаемое значение]:
' true: успешная передача файла
' false: файл не был успешно передан
'----------------------------------------------------------------------
Private Function sendStream(ByRef errorDescription As String, _
ByRef streamOutToIrDA As System.IO.Stream, _
ByRef irDASender As System.Net.Sockets.IrDAClient, _
ByRef streamInFromFile As System.IO.Stream) As Boolean
errorDescription = ""
'----------------------------
'Создание нового клиента IRDA
'----------------------------
Try
'-------------------------------------------------------
'Возврат произойдет довольно быстро. Клиент будет выбран
'и возвращен, если прослушивающие клиенты отсутствуют.
'-------------------------------------------------------
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)
'Обеспечить многопоточную безопасность для предотвращения
'параллельного выполнения операций чтения/записи
SyncLock (Me)
m_ReceiveStatus = newStatus
End SyncLock 'end lock
End Sub
'--------------------------------------------------
' (in) filename: желаемое имя для входного файла IR
'--------------------------------------------------
Public Sub New(ByVal filename As String, ByVal irdaServiceName As String)
'Имя сокета IrDA, который мы хотим открыть
m_IrDAServiceName = irdaServiceName
'Имя файла, в котором мы хотим сохранить полученные данные
m_fileNameForDownload = filename
End Sub
'----------------------------------------------------------
'Обеспечивает асинхронный прием файла через IR
' (in) filename: имя файла, в который осуществляется запись
'----------------------------------------------------------
Public Sub WaitForIRFileDownloadAsync()
'Заметьте, что сейчас мы находимся в режиме подготовки
setStatus(ReceiveStatus.NotDone_SettingUp)
'-------------------
'Создать --">Книги схожие с «Программирование мобильных устройств на платформе .NET Compact Framework» по жанру, серии, автору или названию:
Сенько Евгений Владимирович - Программирование приложений для мобильных устройств под управлением Android. Часть 1. |
Валентина Ивановна Назарова - Современные теплицы и парники Жанр: Сад и огород Год издания: 2011 |
Джек Хиггинс - Полет орлов Жанр: Военная проза Год издания: 2000 |