如果利用数组的话,一但接收方同时有10个人接收一个100M的文件,那么服务器就完蛋了,请问有没有办法不利用数组去传递呢?我试过自行分割,用“get #文件号,起始位置,变量”这样的方法拿取文件内容,再发出去,但问题是,发一次包之后,就要close winsock控件一次,不然接收方就不会触发DataArrival事件,如果这样连啊关啊,消耗的资源我看不比数组少,请问有没有什么好的解救方法?谢谢

解决方案 »

  1.   

    close winsock控件一次?不懂,没见过。楼主的代码有问题的!
      

  2.   

    我开了两边的DEBUG,这边发了一个8192字节的包过去,那边仍然没有触发DataArrival,代码如下:
        Dim kkk As String
        For i = 1 To 8192
            kkk = kkk & CStr(i)
        Next
        WinsockClient.SendData kkk这样之后,接收方仍然没有触发DataArrival,唉...
      

  3.   

    有没有连接上啊你的KKK变量,是8192字节???
      

  4.   

    数组是存储数据的一种手段
    合适选取数据结构会提高程序效率
    不知道你们为什么老喜欢用Winsock发送String
    VB的String是基于Unicode,会存在自动转换。不仅影响速度,还会改变原有数据的内容(转换失败的字符)
    用Byte数组好得多
      

  5.   

    8192字符是8192字节??楼主该去补补基本功了你用lenb()函数看看到底是多少字节。
      

  6.   

    就是100个人发消息服务器也不会完蛋,只要内存带宽购。再说你那个用tcp还是udp阿,你老关闭干什么啊