setsockopt setsockopt 함수는 소켓 옵션을 설정하는 함수입니다. int setsockopt ( Parameters s level optname optval optlen Remarks setsockopt 함수는 지정된 소켓의 옵션을 특정한 형태(type), 상태(state)로 결합하기 위해서 지정한 소켓옵션 값을 셋팅하는 함수입니다. 비록 여러 프로토콜 레벨로의 소켓 옵션이 존재 할 순 있다 하더라도, 가장 우선하는 레벨이 존재하게 됩니다. 옵션은 소켓 연산에 영향을 미칩니다. 예를들어 발송된 데이터(OOB 데이터를 예로 들 수 있습니다) 를 일반 데이터 스트림으로 수신했을때나, 소켓으로 브로드캐스트(broadcast) 메세지를 전송할때 영향을 미치게 됩니다. 이 함수에서 사용 할 수 있는 두가지 형태의 소켓옵션이 있습니다. 활성화 또는 비활성화 시키기 위한 Boolean 옵션과, level = SOL_SOCKET 옵션값(Value) 데이터형태(Type) 의미(Meaning) SO_BROADCAST BOOL 소켓으로 브로드캐스트(broadcast) 메세지를 전송 할 수 있도록 합니다. SO_DEBUG BOOL 디버깅 정보를 레코딩 합니다. SO_DONTLINGER BOOL 소켓을 종료(close)할때 보내지지 않은 데이터를 보내기위해서 블럭킹 상태가 되지 않도록 합니다. 이 옵션을 셋팅하는 것은 LINGER구조체의 멤버중 l_onoff를 0으로 셋팅하고SO_LINGER 옵션을 셋팅 했을때와 같은 효력을 발휘합니다. SO_DONTROUTE BOOL 라우팅 하지 않고, 직접 인터페이스로 보냅니다. SO_GROUP_PRIORITY int 차후에 소켓그룹을 사용하기위해 예약 되어있습니다. 소켓그룹의 일부분인 소켓을 만들기위해 관련된 우선사항을 명시합니다. SO_KEEPALIVE BOOL Keepalives를 전송합니다. SO_LINGER struct LINGER 아직 전송되지 않은 데이터가 있을 경우 소켓을 종료(close)할때 대기합니다. SO_OOBINLINE BOOL 일반 데이터 스트림(normal data stream)으로 out-of-band 데이터를 수신합니다. SO_RCVBUF int 데이터를 수신하기 위한 총 버퍼공간을 명시합니다. 요놈은 SO_MAX_MSG_SIZE 나, TCP Window의 크기와 상관이 없습니다. SO_REUSEADDR BOOL 이미 사용되고 있는 어드레스를 바인드 할 수 있도록 합니다. SO_SNDBUF int 데이터를 전송하기 위한 총 버퍼공간을 명시합니다. 요놈은 SO_MAX_MSG_SIZE 나, TCP Window의 크기와는 상관이 없습니다. level = IPPROTO_TCP TCP_NODELAY BOOL 전송합병(send coalescing)을 위해Nagle 알고리즘을 비 활성화 합니다. Return Values 에러가 발생하지 않으면, setsockopt 함수는 0을 반환합니다. 에러가 발생하면, SOCKET_ERROR을 반환하면WSAGetLastError 함수를 이용해서 특정 에러 코드를 얻어낼 수 있습니다. Error Codes WSANOTINITIALISED 이 함수를 사용하기 전에 성공적인 WSAStartup 함수의 호출이 없었습니다. WSAENETDOWN 네트웍 서브 시스템에 에러가 발생했습니다. WSAEFAULT optval 또는 optlen 매개변수 중의 하나가 올바르지 않거나 optlen 매개변수의 값이 너무 작습니다. WSAEINPROGRESS 블럭킹 윈속 v1.1 이 현재 진행 중이거나, 서비스 프로바이더가 콜백 함수를 여전히 처리하고 있습니다. WSAEINVAL level 매개변수가 잘못됐거나, 알 수 없는 값 입니다. WSAENETRESET SO_KEEPALIVE가 설정 되었을때, 접속이 타입아웃 되었습니다. WSAENOPROTOOPT 알 수 없는 옵션이거나, 지원지지 않는 옵션을 사용 했습니다. WSAENOTCONN SO_KEEPALIVE가 설정 되었을때, 접속이 리셋 되었습니다. WSAENOTSOCK 기술자(descriptor)가 소켓 기술자가 아닙니다. QuickInfo Windows NT : 사용가능 See Also overview, bind, getsockopt, ioctlsocket, socket, WSAAsyncSelect, WSAEventSelect [출처] [UNIX] setsockopt() 함수 |작성자 찰리
SOCKET s,
int level,
int optname,
const char FAR * optval,
int optlen
);
[입력] 대상 소켓의 기술자(descriptor)를 명시합니다.
[입력] 소켓 옵션 레벨이 정의 되며, SOL_SOCKET 과 IPPROTO_TCP 중 하나가 될 수 있습니다.
[입력] 셋팅 하기위한 소켓옵션 값입니다.
[입력] 검색된 옵션을 저장 하기위한 데이터 버퍼를 포인트 합니다.
[입력] optval 매개변수 버퍼의 크기
(우아아아악~ 정말 해석 못해 먹겠네여... 원문을 첨가 하겠습니다)
Reserved for future use with socket groups. Specify the relative priority to be established for sockets that are part of a socket group.
Windows : 사용가능
Windows CE : 버젼 1.0 그리고 그이후의 버젼에서 사용가능
Header :
Win16/32 : winsock.h
Win32-II : winsock2.h
Import Library :
Win16 : winsock.lib
Win32 : wsock32.lib
Win32-II : ws2_32.lib
setsockopt
2011. 2. 22. 11:30