함수 실패 시 값 반환
매니페스트 상수 SOCKET_ERROR 함수 오류를 검사하기 위해 제공됩니다. 이 상수의 사용은 필수는 아니지만 권장됩니다. 다음 예제에서는 SOCKET_ERROR 상수를 사용하는 것을 보여 줍니다.
일반적인 BSD 스타일(Windows에서는 작동하지 않음)
r = recv(ClientSocket, recvbuf, recvbuflen, 0);
if (r == -1 /* or r < 0 */
&& errno == EWOULDBLOCK) {
printf("recv failed with error: EWOULDBLOCK\n");
}
Windows 스타일
iResult = recv(ClientSocket, recvbuf, recvbuflen, 0);
if (iResult == SOCKET_ERROR ) {
iError = WSAGetLastError();
if (iError == WSAEWOULDBLOCK)
printf("recv failed with error: WSAEWOULDBLOCK\n");
else
printf("recv failed with error: %ld\n", iError);
closesocket(ClientSocket);
WSACleanup();
return 1;
}
관련 항목