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