Private Sub scktcpclient_dataArrival(ByVal bytestotal As Long)
Dim strmydata() As Byte '采用字节接受十六进制数据
Dim strlen As Long '定义字符串长度
Dim i As Long
scktcpclient.GetData strmydata, vbByte
strlen = UBound(data)
For i = 0 To strlen
Text1.Text = Text1.Text & " " & Hex(data(i)) & "H"
Next i
Text3 = bytestotal
End Sub
运行结果:
Text1显示: ECH 3H 8H 0H 0H 34H
Text3显示:56
用strlen = UBound(data),计算接收数据长度,为什么不对呢!
追答你在 scktcpclient.GetData strmydata 后,debug一下 data,或者 lenb(data)。
你的数据长度程序已经帮你算好了,就是 bytestotal。光看字面意思也能够理解
刚才老眼昏花了,以为你用的是vbstring,这样写就没错,不过这里的vbbyte可以省略掉。
你们都回答错误!
追答你照做就是了,在 scktcpclient.GetData strmydata 后,debug一下 data,或者 lenb(data)。
追问我的那个代码本事没有错误。错误的原因是:我接收使用strmydata变量,而喔求数组个数用的是UBound(data)。这是我错误的原因!不过,分我还是给你!你也算是热心人!
你说这个这个我试过,不行!scktcpclient.GetData 参数;是表示接收的类型!写不写关系不大!