recv是否可以分段接受数据?
比如   现在我的客户端给服务器发送一段数据 123456789 ,服务器接受的时候先recv前 N 个字节,然后在用recv读取 总长-N 个字节这样可以吗?

解决方案 »

  1.   

    最好别这么干.假设你想要 recv 123456 个字节.
    而对方也配合的发送 send 123456
    但是你recv 在返回前不一定能接收到 123456 个字节. 可能是10000个字节.
    还需要你第二次调用recv.
      

  2.   

     当然可以。先怎么接就怎么接。但是,你要判断recv的返回值,看看是不是已经取到了,你想要取得的数据长度。如果没有,在循环调用recv,知道取得想要的数据长度或者返回错误为止。
      

  3.   

    可以,如下:接收数组buff[自定义大小];while(判断接收的信号)
    {
      recv(将数据接收到该 buff中);
      ...........
    }
      

  4.   

    while (1)
    {
      recv}