비동기 송수신 관련 질문이요

balgarac1의 이미지

if (WSASend(userInfo.sock, &dataBuf, 1, &n, 0, &overlapped, NULL) == SOCKET_ERROR)
	{
		if (WSAGetLastError() == WSA_IO_PENDING)
		{
			WSAWaitForMultipleEvents(1, &evObj, TRUE, WSA_INFINITE, FALSE);
			WSAGetOverlappedResult(userInfo.sock, &overlapped, &n, FALSE, &flag);
 
		}
	}
 
if (WSARecv(userInfo.sock, &dataBuf, 1, &n, &flag, &overlapped, NULL) == SOCKET_ERROR)	
{
 
 
 
}

하나의 함수 안에서 서버에 비동기 송신을 한 후 다시 서버로부터 오는 응답을 받으려 하는데 연속해서 위와 같은 구조로 코드를 작성해도 되나요?
혹시 overlapped 구조체를 따로 써야 하나요??