getaddrinfo()

모든 프로토콜에 대해 호스트 이름, 호스트 주소, 포트 번호, 서비스 이름을 소켓 주소 구조체로 변환해준다. 모든 프로토콜에 대해!!!!!!!!

<aside> 💡 네트워크 호스트 정보를 받아서 네트워크 주소 정보(IP address)를 가져오거나 그 반대를 수행하는 함수

</aside>

<aside> 💡 입력한 host와 service(port)에 대응되는 addrinfo 구조체 링크드 리스트를 가리키는 포인터를 반환한다.

</aside>


int getaddrinfo(const char *host,            /* Hostname or address */
                const char *service,         /* Port or service name */
                const struct addrinfo *hints,/* Input parameters */
                struct addrinfo **result);   /* Output linked list */

/* 메모리 누수를 피하기 위해 addrinfo 구조체 리스트를 반환한다. */
void freeaddrinfo(struct addrinfo *result);  /* Free linked list */

/* 에러 시에 에러 코드를 메세지로 바꿔준다. */
const char *gai_strerror(int errcode);

파라미터

host : 도메인 주소 혹은 Dotted Decimal 주소 둘 다 가능

service : 서비스 이름(http....) 혹은 10진수 포트 번호(80, 22,...) 다 가능

<aside> 💡 host와 service 둘 중 하나를 인자로 넣으면 다른 하나는 NULL로 넣는다.

</aside>

구조체 hint : 내가 찾고 싶은 결과가 어떤 유형인지를 알려준다. addrinfo 구조체 result에 대해 희망하는 유형을 알려준다.