소켓 입/출력 버퍼의 크기를 확인하려면 다음과 같은 함수를 사용하면 된다.
getsockopt
//윈속 초기화
WSADATA wsa = { 0 };
if (::WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
{
puts("ERROR: 윈속을 초기화 할 수 없습니다.");
return 0;
}
//소켓 생성
SOCKET hSocket = ::socket(AF_INET, SOCK_STREAM, 0);
if (hSocket == INVALID_SOCKET)
{
puts("ERROR: 소켓을 생성할 수 없습니다.");
return 0;
}
//소켓의 '송신' 버퍼의 크기를 확인하고 출력한다.
int nBufSize = 0, nLen = sizeof(nBufSize);
if (::getsockopt(hSocket, SOL_SOCKET,
SO_SNDBUF, (char*)&nBufSize, &nLen) != SOCKET_ERROR)
printf("Send buffer size: %d\n", nBufSize);
//소켓의 '수신' 버퍼의 크기를 확인하고 출력한다.
nBufSize = 0;
nLen = sizeof(nBufSize);
if (::getsockopt(hSocket, SOL_SOCKET,
SO_RCVBUF, (char*)&nBufSize, &nLen) != SOCKET_ERROR)
printf("Receive buffer size: %d\n", nBufSize);
//소켓을 닫고 종료.
::closesocket(hSocket);
::WSACleanup();
위 코드 처럼 getsockopt 함수를 이용해 소켓의 입력/출력 버퍼의 크기를 확인할 수 있다.
https://learn.microsoft.com/ko-kr/windows/win32/api/winsock/nf-winsock-getsockopt
getsockopt 함수(winsock.h) - Win32 apps
getsockopt 함수(winsock.h)는 소켓 옵션을 검색합니다.
learn.microsoft.com
'강의 정리 > 인프런' 카테고리의 다른 글
[인프런] 시큐어 코딩 (0) | 2025.03.31 |
---|---|
[인프런] 쉘 코드 (0) | 2025.03.31 |
[인프런] 쓰레드 생성 및 실행 (0) | 2025.03.31 |
[인프런] 함수 포인터 (0) | 2025.03.22 |
[인프런] inline 함수와 컴파일러 최적화 (0) | 2025.03.17 |