向本机发送字节型数组,却收不到。使用UDP。源代码如下:Private Sub Form_Load()
    Winsock1.RemoteHost = "zhao"
    Winsock1.RemotePort = 2001
    Winsock1.Bind 2000
    
    Winsock2.RemoteHost = "zhao"
    Winsock2.RemotePort = 2000
    Winsock2.Bind 2001    
End Sub
Private Sub Command1_Click()
    Dim Snd(4) As Byte
    Dim i As Integer
        
    For i = 0 To 4
        Snd(i) = i     
    Next
    
    Winsock1.SendData Snd()    
End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
    Dim Rec(4) As Byte
    Dim i As Integer
        
    Winsock2.GetData Rec()
        
    For i = 0 To 4
        Text1(i).Text = CStr(Rec(i))
    Next    
End Sub
运行后,bytesTotal的值为5,但是Rec数组的所有元素均为零。另外,如果把SendData和GetDate的参数改成字符串型,或者数组的某一个元素,就可以传送成功。请高人指点一下!怎样传送这个数组?

解决方案 »

  1.   

    实际要用到的地方,数组较长。最好能提供一种直接传送数组的方法。 Winsock控件应该可以做到的啊。为什么会出现这种问题?
      

  2.   

    实际用到的数组较长,不便拆分。最好能提供一种直接传送数组的方法。winsock控件应该可以做到的啊!为什么会出现这种问题呢?
      

  3.   

    msdn是有实例,看看不就知道了
      

  4.   

    Winsock2.GetData Rec, vbbyte+vbarray '加上接收类型说明
      

  5.   

    msdn里的实例是发送字符串的,关于没有数组的。Winsock2.GetData Rec, vbByte + vbArray或者Winsock2.GetData Rec, vbByte + vbArray, bytesTotal还是不行
      

  6.   

    Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
        Dim Rec() As Byte
        Dim i As Integer
            
        Winsock2.GetData Rec(), vbArray Or vbByte
            
        For i = 0 To 4
            Text1(i).Text = CStr(Rec(i))
        Next
    End Sub
      

  7.   

    rec要声明为动态数组,不能为Rec(4)那样的固定数组,这收不到数据的!