int getaddrinfo( const char* host, const char* service, const struct addrinfo* hints, struct addrinfo** result );
host, service, hints 값을 입력으로 받는다.
addrinfo 구조체의 링크드리스트를 동적으로 할당하고 result가 이 리스트의 시작 부분을 가리키도록 설정한다.
addrinfo 구조체는 해당 호스트와 서비스를 가리키는 소켓 포인터를 반환한다.
struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; size_t ai_addrlen; char* ai_canonname; // 공식 호스트명 struct sockaddr* ai_addr // 소켓 주소를 가리키는 포인트 struct addrinfo* ai_next; // 다음 구조체 .. 링크드리스트 }
getaddrinfo 함수는 result가 가리키는 모든 구조체 메모리를 동적으로 할당한다.
freeaddrinfo() 함수를 이용하면 단번에 메모리를 해제 할 수 있다.
void freeaddrinfo(struct addrinfo* result);
에러 메시지 문자열을 가리키는 포인터를 리턴한다.
const char* gai_strerror(int errcode);
getnameinfo() 는 getaddrinfo() 와 정반대 기능을 수행한다.
소켓을 받아서 호스트명과 서비스명 문자열을 리턴하거나, 해석 불가일 경우 숫자 표현을 그대로 리턴한다.
'프로그래밍 > Server' 카테고리의 다른 글
소켓 : 고급 옵션 (0) | 2013.03.23 |
---|---|
소켓 : 서버 설계 (0) | 2013.03.23 |
DNS (0) | 2013.03.21 |
소켓 실행파일 (0) | 2013.03.21 |
TCP/IP 네트워크 기초 - TCP (0) | 2013.03.21 |