为什么recv返回的接受数据的字节数和缓冲区中的字节数不相等?
如:用raw socket套接字int ret = recv(RawSock, RecvBuf, MAX_PACK_LEN, 0);
ret的值和RecvBuf中的值不相等?

解决方案 »

  1.   

    ret的值肯定是等于Recvbuf中接收的数据量的。
      

  2.   

    会不会是返回的包大,一次没收完。
    -------------------------------------------------
    我是在recv返回时 测试发现的 那么如何保证完整的收完数据包???
      

  3.   

    可能没有收完,采用循环,这样数据不会丢失
    ---------------------------------------------------
    能给段代码作为例子吗? 以什么作为循环结束条件 我是用raw socket接受的 谢谢
      

  4.   

    异步tcp从来都不保证一次recv就是对方一次的send啊
    你必须自己根据数据内容来判断是否一次send的数据全recv到了