18,356
社区成员
发帖
与我相关
我的任务
分享
int recv (
SOCKET s,
char FAR* buf,
int len,
int flags);
第一个参数s,是准备接收数据的那个套接字。第二个参数buf,是即将收到数据的字符缓冲,而len则是准备接收的字节数或buf缓冲的长度。最后,flags参数可以是下面的值:0、MSG_PEEK或MSG_OOB。另外,还可对这些标志中的每一个进行按位和运算。当然, 0表示无特殊行为。MSG_PEEK会使有用的数据复制到所提供的接收端缓冲内,但是没有从系统缓冲中将它删除。另外,还返回了待发字节数。 int WSARecv (
SOCKET s,
LPWSABUF lpBuffers,
DWORD dwBufferCount,
LPDWORD lpNumberOfBytesRecvd,
LPDWORD lpFlags,
LPWSAOVERLAPPED lpOverlapped,
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionROUTINE);
参数s,是已建立连接的套接字。第二和第三个参数是接收数据的缓冲。lpBuffers参数是一个WSABUF结构组成的数组,而dwBufferCount则表明前一个数组中WSABUF结构的数目。如果接收操作立即完成,lpNumberOfBytesReceived参数就会指向执行这个函数调用所收到的字节数。lpFlags参数可以是下面任何一个值:MSG_PEEK、MSG_OOB、MSG_PARTIAL或者对这些值进行按位和运算之后的结果。