System.IndexOutOfRangeException:索引超出数组vb.net无限循环的界限

System.IndexOutOfRangeException:索引超出数组vb.net无限循环的界限,vb.net,Vb.net,我正在执行一个无限循环,这段代码有问题: Dim infiniteCounter As Integer For infiniteCounter = 1 To 2 infiniteCounter = 1 Try Dim dataFromClient As String Dim bytesFrom(50024) As Byte Dim networkStream As NetworkStream = clientSocket.Get

我正在执行一个无限循环,这段代码有问题:

Dim infiniteCounter As Integer

For infiniteCounter = 1 To 2
    infiniteCounter = 1

    Try
        Dim dataFromClient As String
        Dim bytesFrom(50024) As Byte
        Dim networkStream As NetworkStream = clientSocket.GetStream()

        networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
        dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
    Catch ex As Exception
    End Try
Next
引发问题的具体行是:

Dim bytesFrom(50024) As Byte
出现以下错误:

System.IndexOutOfRangeException:索引超出了数组的边界

你知道怎么解决这个问题吗


谢谢

在尝试访问数据之前,请添加一项检查,查看bytesFrom中是否有数据:

If bytesFrom IsNot Nothing AndAlso bytesFrom.Length > 0 Then
    dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
End If

此外,您应该将可能出现异常的任何特定行包装在try/catch中,而不是整个代码块中(例如,获取流、将其读入变量并解码字节数组)。

如果您将所有异常都包含在空catch块中,您如何知道会引发异常?为什么代码是这样写的?
infiniteCounter
的目的是什么?为什么不从0开始,而不是从1开始?也许只有我,但这个问题看起来很相似: