#include <sys/types.h>
#include <sys/socket.h>
int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
getsockopt() 및 setsockopt()는 파일 디스크립터 sockfd가 참조하는 소켓의 옵션을 조작한다.
옵션은 여러 프로토콜 수준에 존재할 수 있다.
소켓 옵션을 조작할 때 옵션이 상주하는 레벨과 옵션 이름을 지정해야 한다.
소켓 API 레벨에서 옵션을 조작하기 위해 레벨은 SOL_SOCKET으로 지정된다.
다른 레벨에서 옵션을 조작하기 위해 옵션을 제어하는 적절한 프로토콜의 프로토콜 번호가 제공된다.
예를 들어, 옵션이 TCP 프로토콜에 의해 해석됨을 나타내려면,
레벨은 TCP의 프로토콜 번호(IPPROTO_TCP)로 설정되어야 한다.
optval 및 optlen 인수는 setsockopt()의 옵션 값에 액세스하는 데 사용된다.
getsockopt()의 경우 요청 된 옵션의 값이 반환 될 버퍼를 식별한다.
getsockopt()의 경우, optlen은 초기에 optval이 가리키는 버퍼의 크기를 포함하고 반환 된 값의 실제 크기를 표시하도록 수정된 값 결과 인수이다.
20. 소켓 옵션 & 주소 정보
소켓 옵션
SO_KEEPALIVE
SO_LINGER
SO_RCVBUF / SO_SNDBUF
SO_RCVTIMEO / SO_SNDTIMEO
SO_REUSEADDR
TCP_MAXSEG
TCP_NODELAY
소켓 주소 정보
예제