全局代码:
Public socket As MyClient
Public Class MyClient
Public receiveThread As System.Threading.Thread
Public nStream As System.Net.Sockets.NetworkStream
Public tcp As System.Net.Sockets.TcpClient
Public Sub New(ByVal ip As String, ByVal port As Integer)
Dim server As System.Net.IPAddress = System.Net.IPAddress.Parse(ip)
tcp = New System.Net.Sockets.TcpClient()
Try
tcp.Connect(ip, port)
Catch generatedExceptionName As Exception
tcp = Nothing
End Try
If tcp Is Nothing Then
MsgBox("无法连接服务器,请重试")
Else
Dim netStream As System.Net.Sockets.NetworkStream = tcp.GetStream()
nStream = netStream
receiveThread = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf ReceiveMsg))
receiveThread.IsBackground=True
receiveThread.Start()
End If
End Sub
Private Sub ReceiveMsg()
While True
Dim packet As Byte() = New Byte(1024) {}
nStream.Read(packet, 0, packet.Length)
If HEX(packet(7)) = "3" Then
Vars("D128") = packet(10)
Vars("D129") = packet(12)
Vars("D130") = packet(14)
Vars("D131") = packet(16)
Vars("D132") = packet(18)
Vars("D133") = packet(20)
Vars("D134") = packet(22)
Vars("D135") = packet(24)
Else
End If
End While
End Sub
End Class
为什么偶尔会出现
“索引超出范围.必须为非负值并小于集合大小。参数名:index
这样的错误?有时候好长时间不出现,有时候偶尔就出现几次这样的报错。
[此贴子已经被作者于2020/6/28 14:10:10编辑过]