比如我的缓冲区有3K,那么一个大的文件发过来的时候,我recv一次只能3K,如何接受这种大文件阿??给个范例把~

解决方案 »

  1.   

    如果用的是UDP,那么协议包的大小要小于3K。循环接收就可以了。char szBuffer[ 3 * 1024];
    int nLen = sizeof(szBuffer);while (nLen == sizeof(szBuffer)) {
       nLen = recv(yoursocket, szBuffer, sizeof(szBuffer), 0);   // 将收到的数据保存到文件中
    }
      

  2.   

    我的方法就是接收tcp数据的 ^_^
      

  3.   

    int len = 0 ;
    int rec = 0 ;
    while ( len < FileLenth )
    {
      rec = recv() ;
      len += rec ;
      if ( len == FileLength )
      {
        break ;
      }
      sleep( 100 ) ;
    }
      

  4.   

    FileLenth ?client端是不知道文件大小的,这个怎么可以阿?
      

  5.   

    Client ,Server两端需要协议
      

  6.   

    www.vckbase.com上有可借荐的例子