上次发帖没有问明白,所有在亮出了:
socket.beginreceive(byte[],offset,size,socketflags,asynccallback)
int endreceive(iasyncresult);beginreceive中size的作用是指明要接收的数据字节多少,是不是当只有收集到size大小是才完成呢?它收集的字节包括两条数据间的空字节吗(比如,两次send(byte data[1024]),但data中有用的只有100个有用,那么目标机器缓冲区中两条数据之间有924个空字节)?
如果收集不满,beginreceive是不是一直阻塞?
endreceive的返回值 它等于beginreceive中的size吗?还是除去了空字节后的大小(小于size)?

解决方案 »

  1.   

    eginreceive中size的作用是指明要接收的数据字节多少,是不是当只有收集到size大小是才完成呢?
    no它收集的字节包括两条数据间的空字节吗(比如,两次send(byte data[1024]),但data中有用的只有100个有用,那么目标机器缓冲区中两条数据之间有924个空字节)?
    no如果收集不满,beginreceive是不是一直阻塞?
    当前线程不阻塞,他在另一个线程中等待。endreceive的返回值 它等于beginreceive中的size吗?还是除去了空字节后的大小(小于size)?
    实际读到的字节,最大是size个。
      

  2.   

    3楼说的正确吗?
    他的意思是beginreceive是不可信的?
      

  3.   

    也就是说,你send 1024个字节,如果在receive里面只有100个,那么100后面的全部都会丢失?