一种方式先投递一个已知大小的包头的recv,等这个包头回来之后,再确定包体长度,然后再投递一个接收包体的长度。 就是一个一个的来。另外一种方式也是一个一个来,但是一次投递4096大小的recv,然后用应用来分解包头包体。============================
我想问的就是第三种方式:
============================ 如果包头+包体可能有100字节,我一次投递10个recv,每个recv接收10个字节(只是为了讨论才设定的这些数字)
 
 如果一共收到3个包,也就是300多个字节,一起过来。 那么返回给应用的recv的次序是什么样的。是否经过序列化。 如果已经序列化,那么系统第一次调用我的recv完成函数,给我300个字节的1-10个字节,recv完成函数执行完毕之后,系统第二次调用recv完成函数,把10-20个字节给我。 如果没有序列化,而是系统多线程的调用我的recv完成函数,那么我的完成函数并不确定现在接收到的10字节是第几个10字节。用别人的封装就是麻烦,以前直接用系统调用,比如socket api,poll, iocp的时候,根本不用考虑这个问题,现在用ACE前摄框架,突然就认为这个问题是问题了。
 这个问题,是不是问题。