vb 通过socket 发送数据的问题 100

发送端(rs是ADO)ReDimTV(rs.RecordCount)’数组长度先行发过去了rs.MoveFirsti=0DoWhileNotrs.EOFTV(i)=Abs... 发送端(rs是ADO)
ReDim TV(rs.RecordCount)’数组长度先行发过去了
rs.MoveFirst
i = 0
Do While Not rs.EOF
TV(i) = Abs(rs("TestValue"))
rs.MoveNext
i = i + 1
Loop
Sen (TV) '自定义个发送函数 tv就是发送的数据了

接收端
Dim tmp As String‘公共的声明

Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)
On Error GoTo ErrH
tmp = ""
Winsockserver.GetData tmp
Select Case Mid(tmp, 1, 3)
Case "STA"
x = Val(Replace(tmp, "STA", "", 1))
Label1.Caption = x
Debug.Print tmp
Case Else
Call De
End Select
ErrH:
End Sub
Sub De()
Dim tmp() As Byte
ReDim tmp(x)
For i = 1 To x
Debug.Print i & " " & tmp(x)’ 全是0 还不能发负数!请问怎么解决!
Next i
End Sub
展开
 我来答
jxh2003zfr
2009-11-13 · TA获得超过214个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:186万
展开全部
1.将TV()声明为byte类型,很重要,因为VB中winsock.senddata只能传输入string及byte数组类型。
比如dim tv(2) as byte
tv(0)=0
tv(1)=5
tv(2)=10
winsock.senddata tv
注:string可以与byte直接转换,比如dim tv() as byte tv="abs"

2.接收时将tmp声明为byte类型,然后Winsockserver.GetData tmp即可,由上例tmp=tv,然后再根据要求处理(比如byte转换为string等)数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式