WSARecv

WSARecv

 

在重叠模型中,接收数据就要靠它了,它的参数也比recv要多,因为要用刀重叠结构嘛,它是这样定义的:

  int WSARecv(
  SOCKET s, // 当然是投递这个操作的套接字
  LPWSABUF lpBuffers, // 接收缓冲区,与Recv函数不同
  // 这里需要一个由WSABUF结构构成的数组
  DWORD dwBufferCount, // 数组中WSABUF结构的数量
  LPDWORD lpNumberOfBytesRecvd, // 如果接收操作立即完成,这里会返回函数调用所接收到的字节数
  LPDWORD lpFlags, // 说来话长了,我们这里设置为0 即可
  LPWSAOVERLAPPED lpOverlapped, // “绑定”的重叠结构
  LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine // 完成例程中将会用到的参数,我们这里设置为 NULL
  );
  返回值:
  WSA_IO_PENDING : 最常见的返回值,这是说明我们的WSARecv操作成功了,但是I/O操作还没有完成,所以我们就需要绑定一个事件来通知我们操作何时完成

你可能感兴趣的:(Socket,C/C++/VC)