소켓 입/출력 버퍼의 크기를 확인하려면 다음과 같은 함수를 사용하면 된다.

 

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

+ Recent posts