>'Функция, которую мы используем для передачи данных.
>'---------------------------------------------------
>Private Sub writeDataToSocket( _
> ByVal mySocket As System.Net.Sockets.Socket, _
> ByVal dataToSend() As Byte)
> '------------------------------------------------------------------
> 'Этот код следует компилировать лишь при тестировании сетевых сбоев
> '------------------------------------------------------------------
>#If DEBUG_SIMULATE_FAILURES <> 0 Then
> 'Если это сбой, который мы хотим тестировать, генерировать исключение
> If (g_failureCode = _
> SimulatedFailures.failInNextWriteSocketCode) Then
> 'Сбросить этот сбой, чтобы он не возник
> 'при следующем вызове этой функции
> g_failureCode = SimulatedFailures.noFailurePending
> Throw New Exception("Test communications failure: " + _
> g_failureCode.ToString())
> End If
>#End If
> 'Передать данные обычным образом.
> mySocket.Send(dataToSend)
>End Sub
Листинг 15.3. Тестовый код, который необходимо поместить в класс формы для тестирования передачи и приема данных посредством механизма IrDA
>'Имя, которое мы хотим присвоить сокету IrDA
>Const myIrDASocketName As String = "IrDaTestFileTransmit"
>Private Sub buttonTestFileSend_Click(ByVal sender As Object, _
> ByVal e As System.EventArgs) Handles buttonTestFileSend.Click
> 'Создать простой текстовый файл, который мы хотим передать
> Const fileName As String = "\myTestSendFile.txt"
> Dim textFileStream As System.IO.StreamWriter
> textFileStream = System.IO.File.CreateText(fileName)
> textFileStream.WriteLine("Today...")
> textFileStream.WriteLine("is а nice day")
> textFileStream.WriteLine("to go swim")
> textFileStream.WriteLine("in the lake")
> textFileStream.Close()
> Dim irdaFileSender As IrDAFileSend
> irdaFileSender = New IrDAFileSend(fileName, myIrDASocketName)
> 'Имеется 2 режима: 1 - Sync (синхронный), 2 — Async (асинхронный)
> '1. Вызвать функцию в синхронном режиме
> 'и блокировать поток выполнения до тех пор,
> 'пока файл не будет передан
> '1a. Информировать пользователя о том, что мы пытаемся передать данные
> Me.Text = "Trying to send..."
> 'Подождать, пока клиент не будет найден, а затем передать файл
> irdaFileSender.LoopAndAttemptIRSend()
> '1c. Информировать пользователя о том, что файл передан
> MsgBox("File sent!")
> Me.Text = "IrDA: Sent!"
> '2. Вызвать функцию в асинхронном режиме и поручить
> 'передачу файла фоновому потоку
> 'irdaFileSend.LoopAndAttemptIRSendAsync()
> 'ПРИМЕЧАНИЕ: Если мы вызываем функцию в асинхронном режиме, то должны
> 'периодически проверять, не завершила ли она выполнение, путем
> 'вызова метода 'irdaFileSend.Status'