Foxtable(狐表)用户栏目专家坐堂 → [求助]socket代码无规律出现索引超出范围的错误。是哪里有问题了


  共有2197人关注过本帖平板打印复制链接

主题:[求助]socket代码无规律出现索引超出范围的错误。是哪里有问题了

帅哥哟,离线,有人找我吗?
54292550
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:4129 威望:0 精华:0 注册:2011/8/19 10:07:00
[求助]socket代码无规律出现索引超出范围的错误。是哪里有问题了  发帖心情 Post By:2020/6/28 14:10:00 [只看该作者]

全局代码:
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编辑过]

 回到顶部