"下标越界"问题求助~~~
通过Winsock控件从以太网上接收数据,rxdlc为接收的数据长度(从数据桢中第4至第7字节中获得).问题:一运行,开始接收,就报错,说下标越界.从监控窗口显示只接收了536个字节,但实际有上千个字节.
为什么不能全部接收,而只能接收536个呢???
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim buff As Variant
Dim i As Long
Dim rxdlc As Long
Dim ff1 As Byte 'ff为第4字节(表示数据长度)
Dim ff2 As Byte 'ff为第5字节(表示数据长度)
Dim ff3 As Byte 'ff为第6字节(表示数据长度)
Dim ff4 As Byte 'ff为第7字节(表示数据长度)
Dim RE() As Byte
Dim Ti As String
Winsock2.GetData buff '接收数据
RE = buff '将buff中的内容即输入缓冲区的内容读入RE
ff1 = RE(4) '将RE的第4字节读入ff1
ff2 = RE(5) '将RE的第5字节读入ff2
ff3 = RE(6) '将RE的第6字节读入ff3
ff4 = RE(7) '将RE的第7字节读入ff4
Text3.Text = ff1
Text4.Text = ff2
Text5.Text = ff3
Text6.Text = ff4
rxdlc = ff4 + (ff3 * 256) + (ff2 * 256 * 256) + (ff1 * 256 * 256 * 256)
Text7.Text = rxdlc
'CStr函数:返回表达式,该表达式已被转换为 String 子类型的 Variant
For i = 0 To rxdlc + 8 '装载数据
Ti = Ti & " " & CStr(Hex(RE(i))) '错误:下标越界
Next i
Text2.Text = Text2.Text & Ti & vbCr + vbLf 'vbCrLf为换行命令
End Sub