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

> 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

> _

>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 будет несложно написать его, используя в качестве образца код на С#.