问题是这样:
我用一个hookapi的工具监测到一个网络客户端程序的WSARecv和Recv函数,发现收到两个连继的WSARecv数据长度是4和52.
 我自己模拟了一个客户端用recv接收的他的数据,长度是56, 也就是两个数据并为一个数据了,不知道这个情况是怎么回事,
是因为我用recv而没用WSARecv的原因么? 网络方面我不太熟, 帮帮小弟, WSARecv参数较多没弄懂这东西如何用. 
待解,谢谢.

解决方案 »

  1.   

    每次接收需要知道接收的长度,然后循环接收数据包,直到完成。
    发送也是一样,不要send函数调用了就完了,还要看send返回了多少字节,再根据这个值,判断是否已发送你传递给她的长度值,没有发送完,就循环发送完成。
      

  2.   

    哦,那这个和recv或是WSARecv没关系喽?
    但是我怎么知道服务器给我发的真识的长度呢, 晕晕的
      

  3.   

    原程序调用了两次,
    第一次读取 4 字节,多半就是 数据包的长度,相当于 head
    第二次根据第一次读到的长度,再读一次数据 相当于 body楼主一次就把 head + body 全都度出来了 4 + 52