术语 | CAsyncSocket::Receive | ||||||||||||||||||||||||||||||||||||||||||||||||
释义 | CAsyncSocket::Receive virtual int Receive( void* lpBuf, int nBufLen, int nFlags = 0 ); 返回值: 调用成功时,返回接收到的字节数。如果连接被关闭了,返回0;否则返回SOCKET_ERROR,可以调用GetLastError得到特定的错误代码。此成员函数可用的错误代码有:
参数:
说明: 本函数用于从套接字获取数据。它从已连接的流套接字或数据报套接字上读输入的数据。对于流套接字(SOCK_STREAM类型的套接字),本函数返回缓冲中不超过缓冲大小的所有有效数据。如果套接字被设置成在线接收带外数据(套接字选项为SO_OOBINLINE),并且带外数据没有被读,则仅仅返回带外数据。应用可以使用IOCtl的SIOCATMARK选项或者OnOutOfBandData来检测是否还有未读的带外数据。对于数据报套接字,本函数从第一个入队的数据报中解出数据,发到缓冲中。如果数据报比缓冲大,则缓冲中仅包含数据报的前一部分,而丢弃其它的数据,Receive返回SOCKET_ERROR,错误代码设成WSAEMSGSIZE。如果套接字中没有输入数据,则返回SOCKET_ERROR,并把错误代码设为WSAEWOULD-BLOCK。当更多的数据到达时,可用回调函数OnReceive来检测。如果套接字是SOCK_STREAM类型的,并且远端接点已经正常地关闭连接,Receive会立即返回,接收的数据当然是0字节。如果连接被重置了,Receive将会异常返回,错误代码为WSAECONNRESET。 请参阅: CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::ReceiveFrom, CAsyncSocket::Send |
||||||||||||||||||||||||||||||||||||||||||||||||
随便看 |
|
MFC类库中文详解手册包含4274条MFC类库参考词条,基本涵盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容,是计算机编程的有利工具。