Private Sub Receiving(ByVal iAr As IAsyncResult)
Console.WriteLine("Receiving callback started" + vbNewLine)
Try
SyncLock client.GetStream
Try
client.GetStream.EndRead(iAr)
Catch
Console.WriteLine("exciting")
Exit Sub
End Try
End SyncLock
Catch ex As Exception
Console.WriteLine("exciting")
Exit Sub
End Try
Dim sReader As StreamReader
Dim nChar As Integer
Dim StrBuffer(4096) As Char
SyncLock client.GetStream
sReader = New StreamReader(client.GetStream)
Try
nChar = sReader.Read(StrBuffer, 0, bByte.Length)
Catch ex As Exception
Console.WriteLine(ex)
End Try
Console.WriteLine(client.GetStream.CanRead)
newStr = New String(StrBuffer, 0, nChar)
Console.WriteLine(newStr)
Console.WriteLine("Receiving callback callbacked" + vbNewLine)
client.GetStream.BeginRead(bByte, 0, 4096, AddressOf Receiving, Nothing)
End SyncLock
End Sub
これは私が持っているコードです。おそらく1時間デバッグしてきましたが、問題が見つからないため、解決策が見つかりません
何が起こるべきかは、受信メソッドがバイトの配列を取得することです。デバッグでは、配列は空ではありません。チェックしましたが、問題があると思われる場所は、読み取った行にあります
nChar = sReader.Read(StrBuffer, 0, bByte.Length)
この行では、デバッグは何も停止しません。行を削除すると関数は続行しますが、問題はこの行にあり、何が原因なのか本当にわかりません。
さらに情報が必要な場合は、私に尋ねてください。私はこれに非常に混乱しています。