本帖最后由 maole413149 于 2010-07-05 17:19:09 编辑

解决方案 »

  1.   

    方法1:服务器端没必要循环,一次性发送即可。不过这样需要先传文件长度到客户端进行判断。
    方法2:改成:
    For i = 0 To lngFile/1024 +1       '传送的次数为总长度/1024 因为每次传送1024个字节,而不是一个字节。
        ReDim myFile(1023) As Byte 
        Open fileName For Binary As #1
        Get #1, i * 1024 + 1, myFile 
        Close #1 
        sSocket.SendData myFile 
        DoEvents
        ProgressBar1.Value = ProgressBar1.Value + 1
    Next i
    PS:第二种方法有缺陷。因为客户端没判断是否文件传输是否结束,那么每次服务器端传输的东西,都会被写入文件中。
      

  2.   

    这个.....有个代码给你参考:尝试做了一个利用WINSOCK控件的自动分包发送机制的东东(VB6.0)
      

  3.   

    我这有个例子,你可以看看:
    VB源码:网络收发文件并计算传输速度
    http://download.csdn.net/source/945095