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

ЖАНРЫ

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

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

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:

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

setStatus(ReceiveStatus.Done_ErrorOccured)

End Sub

End Class

Листинг 15.6. Простая Web-служба

'Этот код следует вставить в класс Service1, содержащийся

'в файле "Service1.asmx.vb".

'"[WebMethod]" - это атрибут метаданных, который указывает механизму

'Web-службы на то, что данный метод должен быть доступным через Web

<WebMethod> _

Public Function AddTwoNumbers(ByVal x As Integer, _

ByVal у As Integer) As Integer

Return x + у

End Function

Листинг 15.7. Вызовы Web-служб с передачей параметров только явным образом

Этот код представляет собой всего лишь последовательность вызовов функций. Программистам на VB будет несложно написать его, используя в качестве образца код на С#.

Листинг 15.8. Вызов Web-служб путем неявной передачи параметров посредством cookie-файлов

Этот код представляет собой всего лишь последовательность вызовов функций. Программистам на VB будет несложно написать его, используя в качестве образца код на С#.

Листинг 15.9. Неэффективная организация диалога с Web-службой, в которой используется множество вызовов

Этот код представляет собой всего лишь последовательность вызовов функций. Программистам на VB будет несложно написать его, используя в качестве образца код на С#.

Листинг 15.10. Группирование запросов в одном вызове Web-службы

Этот код представляет собой всего лишь последовательность вызовов функций. Программистам на VB будет несложно написать его, используя в качестве образца код на С#.

Листинг 15.11. Код для загрузки файла с Web-сервера

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

'Осуществляет синхронную загрузку файла с Web-сервера

'и сохраняет его в локальной файловой системе

'[in] httpWhereFrom: URL-адрес файла

' (например, "http://someserver/somefile.jpg")

'[in] filenameWhereTo: Место, куда необходимо записать файл

' (например, "\\localfile.jpg")

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

Public Sub downloadFileToLocalStore(ByVal httpWhereFrom As _

String, ByVal filenameWhereTo As String)

Dim myFileStream As System.IO.FileStream = Nothing

Поделиться с друзьями: