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 参数;是表示接收的类型!写不写关系不大!
VB的Winsock控件,为什么不能接收完所有数据呢?明明发送了56个字节的...
楼主的vbbyte位置没错,那个位置不是接收长度,而是接收类型。如果是2进制数据的话,得改用byte型,这里不用写,因为它默认就是 vbarray + vbbyte 型
vb中用winsock控件的传输速率
不是啊,一个winsock控件,每次发送的数据不能超过8k的,所以,如果仅仅用一个控件来实现数据发送接收,肯定很慢的。你可以用控件数组实现数据传输,让许多控件同时发送、接收,这样就很快。我做了一个,传输速度可达每秒好几兆的。
关于vb的winsock控件的状态问题
第一种是把连接和发数据分开到两个按钮的事件里,这样就有足够的时间让winsock真正连接上。代码就不写了,很容易实现。第二种,如果不愿意用两个按钮,一定要连接好之后立刻发数据的话,可以在一个回圈里轮询winsock1的状态,直到变成7,注意回圈里最好有sleep和DoEvents来释放cpu,否则有造成假死的风...
关于VB Winsock控件的错误问题
10014产生的原因,请检查Winsock的各个属性设置。10054错误一般是远程连接出现问题被重置,可能要从监听端口那一方去查原因。sckOutOfMemory 7 内存不足 sckInvalidPropertyValue 380 属性值不效 sckGetNotSupported 394 属性不可读 sckGetNotSupported 383 属性是只读的 sckBadState 40006 所请求的事务或请求...
根据VB的winsock控件的UDP协议,单片机向PC主机发送15个字节的数据,用Da...
前面声明时要声明成可变数组 Dim jsDATA() as byte 接收事件前要重新声明:redim jsDATA(bytesTotal) as byte 你最好也把bytesTotal的数组显示出来,监控一下是不是15个字节
VB Winsock控件的问题
With wsk .LocalPort = 14310 '不需要修改端口。End With Set wsk = Nothing Winsock1(i).Accept requestID exit for End If Next i End If End Sub 循环从1 到 Winsock1.UBound+1这样执行到最后就必然会产生错误,也就必然会LOAD控件了.注意你要定时检测断开的控件并将它们UNLOAD,不然的...
vb6.0 winsock 控件数组发送数据只有最后一个能发出去
在每一个 SendData 方法的下一条语句处加上 DoEvents 因为控件在发送数据时 程序执行权限不在发送上 导致后一条发送数据被覆盖或未执行 在发送数据方法的下一条语句加 DoEvents 关键字为了转交执行权限 使得数据发送完成后返回调用者继续执行 即 WinsockList(j).SendData "msg你是" & j & "号机 ...
在VB中WINSOCK的使用方法
创建UDP 应用程序比创建 TCP 应用程序还要简单,因为 UDP 协议不需要显式的连接。在上面的 TCP 应用程序中,一个 Winsock 控件必须显式地进行“监听”,另一个必须使用 Connect 方法初始化连接。 UDP 协议不需要显式的连接。要在两个控件中间发送数据,需要完成以下的三步(在连接的双方): 将RemoteHost 属性设置...
如何使用VB Winsock控件??
建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用 SendData 方法。当接收数据时会发生 DataArrival 事件。调用 DataArrival 事件内的 GetData 方法就可获取数据。UDP 基础 用户数据文报协议 (UDP) 是一个无连接协议。跟 TCP 的操作不同,计算机并不建立连接。另外 UDP 应用程序可以是客户机...
VB使用Winsock控件,发送文件到服务器?
my = Winsock1.LocalIP '取得自己的IP地址,是不要的 Winsock1.RemoteHost = my '这里应该是设置为别人计算机的IP地址,由于自己是单机,所以就设置成自己的,自己给自己发信息 End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '取得数据时发生 Dim Tmp As String Winsock...