'Этот код следует компилировать лишь при тестировании сетевых сбоев
'------------------------------------------------------------------
#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
'Имя, которое мы хотим присвоить сокету 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'
End Sub
Private Sub buttonTestFileReceive_Click(ByVal sender As Object, _
ByVal e As EventArgs) Handles buttonTestFileReceive.Click
'Если файл назначения уже существует, уничтожить его
Const fileName As String = "\myTestReceiveFile.txt"
If (System.IO.File.Exists(fileName)) Then
System.IO.File.Delete(fileName)
End If
Dim irdaFileReceiver As IrDAFileReceive