简单的说就是如何能够在一个过程里能够发10次数据,而在接收端能够分10次接受到数据,现在碰到的问题是在客户端发了10次(这十次数据是在一个循环里完成的,在每个send后面我都加了doevents,但是在服务器端却市一次接受了10次的数据,我想让10次数据分开接受到.如何解决)
Csocket.SendData selfname & "errortemp"  
DoEvents
这个是我的程序中,我在sendcompelete事件对发送的数据进行了记数,记的数字是正确的10次,但是为什么接受端却是一次把所有的数据都接到了,请指点

解决方案 »

  1.   

    比如客户端 收到一条后发送个消息给服务器 
    tcpClient.SendData "browJPG"服务器收到消息再发送需要的 数据 Select Case A
        Case "browJPG"
        '列出列表中的扑活 的图片dir
          tcpServer.SendData "browJPG" & vbCrLf & dirJPG(App.Path & "\log\")
        Case "real time JPG"   '准备把 App.Path & "\realtime.jpg"发送到客户机器
        '先发文件
            If Picture1.Tag = "" Then
                xcam_Photo1 Picture2, 80
            Else
                xcam_Photo1 Picture1, 80
            End If
        
        
            '先获得文件大小
            i = FileLen(App.Path & "\realtime.jpg")
            tcpServer.SendData "FileSize:" & i
            StatusBar1.Panels(4).Text = "发送文件大小" & i
            
        Case "Send ok!"
            RefWinsock
        Case "Close"
            '断开连接 重新进入侦听状态
            RefWinsock
            Timer3.Interval = 0
      

  2.   

    如果连续发送,似乎解决不了,因为数据接受是按照IP和端口识别的,如果是同一台机器发送10条,这边是会按照一条接受的.
    解决办法:
    1种是要求发送方每次发一条,接受方收到后回复,然后再发第二条。速度也很快。近乎实时。
    2种是在发送的每条记录上都添加开始和结束标识,如:BOF\EOF等。收到后在接受方自己解析字符串,认为的拆分成10条记录。
      

  3.   

    问题是接受方根本就没有接受到数据,发送10次后,接受方只是接受到了三次,(次数不定),有写数据是在一起发过来的,但是程序单步执行是正常的,我现在还是不知道那里错了,因为sendcomplete的记数是正确的,但是接受方没有按照我的要求接到数据,请各位给指点,我发现论坛上这个问题已经问了不是几边了,有很多人都问了,好象都没有合适的答案,不知道是不是vb是没有办法解决这个问题,但是我觉得其他的语言一样不行的.
      

  4.   

    楼上的兄弟,你说的意思我明白,就是服务器响应一下而已,但是现在的问题是服务器跟本就没有接到实时发来的东西,而是将所有的数据一次接受到,那这样我还要什么实时!我是想用第n条数据来进行判断是否正常,你说的意思只有在接到数据才能执行,我现在的问题是如何能够让数据分开发过来,可能是我的理解有问题吧!我的客户端是在一个循环中大概是255次,我现在要对每一次的循环都要做出判断,如果有问题就发给服务器端,这个时候因为在循环中,程序是没有办法插入的,用doevents的意思就是中断一下,但是实际没有中断,所以出现这样的问题!而在每一次循环中要做大概5次判断,这个时候并没有send出去数据,如何才能让数据send出去
      

  5.   

    直接是不行的,WINSOCK是以一个包一个包的传送,大于默认的包,必须在上一个包发送完毕后,才能继续.相反,如果小于一个包,就以一个包发送出去,象您这种情况,只要给每个之间加上校验码,加以区别!
    我的软件下载地址:
    its screenshot url: 
    http://free.efile.com.cn/huangtao/ScreenShot.jpg 
    >
    setup download url: 
    >http://free.efile.com.cn/huangtao/SmartmailSource.rar