前题是size为2000Receive(buf,size,0);
的返回值一定等于size吗?Send(buf,size,0);
的返回值一定等于size吗?如果不等于是在什么情况有什么返回呢?谢谢!!!急

解决方案 »

  1.   

    怎么还在问?nResult = Receive(buf, size, 0);ASSERT(nResult <= size);
    if(nResult == SOCKET_ERROR){
      ASSERT(nResult = -1);
    }if(nResult > 0 && nResult < size){
      TRACE("发送端或接收端的系统缓冲无法一次性容纳太多数据");
    }
      

  2.   

    也就是说,我要发个1000长度的数据send(buf,1000,0)那返回有可能是大于0小于1000的长度吗?
      

  3.   

    看你的buf,中的内容了,如果发送成功,就是buf中的实际内容长度,但不能大于1000,
    如果失败,就等于-1
      

  4.   

    DWORD dwSize = 0;
    IOCtl(FIONREAD, &dwSize);
    这样可以获得当前数据的大小