我用winsock的
for i=1 to 20
 winsock(index).sendata a(x)
next i
在接收端dataarrival事件中这样写
winsock.getdata data Vbstring
结果data中收到的不是a(1)
而是a(1)到a(20)的全部内容
请问怎样才可以分别收到a(x)

解决方案 »

  1.   

    是一个senddata,就引发一个dataarrival吗?
      

  2.   

    如果你要向20个接收微机发数,应该
    for i=1 to 20
        winsock(i).sendata a(i)
    next i如果你要向当前接收微机发数,应该    winsock(index).sendata a(index)
      

  3.   

    接收用控件数组
    Private Sub Form_Load()
        Winsock1(0).LocalPort = 1001
        Winsock1(0).Listen
    End Sub
    '收
    Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
        If Index = 0 Then
            intMax = intMax + 1
            Load Winsock1(intMax)
            Winsock1(intMax).LocalPort = 0
            Winsock1(intMax).Accept requestID
       End If
    End SubPrivate Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
        Dim strData As String
        Winsock1(Index).GetData strData, vbString
        Combo2.AddItem strData
        Combo2.ListIndex = Combo2.ListIndex + 1
        Timer1.Enabled = True
    End Sub'发
    Private Sub Winsock2_Connect()
        Winsock2.SendData 'send mess"
    End SubPrivate Sub Command1_Click()
       If Winsock2.State <> sckClosed Then
            Winsock2.Close
            MsgBox "false"
            Exit Sub
        End If
            Winsock2.Connect
        Exit Sub
    End Sub
      

  4.   

    在SendData之前,你需要Connect.你通过20个Winsock发送信息,那么,在接收端应该从相应的Winsock的DataArrival事件中接收信息
      

  5.   

    我是通过一个winsock发送了20条消息,
    但不想他们一次到达
      

  6.   

    请问maskzha(蓝色公瑾) 发的程序里的timer的程序怎么写?
      

  7.   

    for i=1 to 20
        winsock(i).sendata a(i)
    next i与for i=1 to 20
       tmp =  tmp + a(i) 
    next i
    winsock(i).sendata tmp
    基本上一样的
    呵呵
      

  8.   

    你想达到什么目的呢?senddata后不会马上发送出去的,只是装到缓冲,如果像你那种用法会一次把所有东西发送出去的