TIL 11월 19일 2023년 일요일

ORCASUIT·2023년 11월 21일

getaddrinfo 함수 호출은 소켓 통신을 위한 서버 또는 클라이언트를 설정할 때 네트워크 프로그래밍에서 매우 중요한 부분입니다. 여기서 구체적으로 이 getaddrinfo 호출이 수행하는 작업을 살펴보겠습니다:

getaddrinfo(NULL, port, &hints, &listp);
  1. 목적: getaddrinfo 함수는 인간이 읽을 수 있는 텍스트 문자열(예: 호스트 이름이나 서비스 이름)을 소켓 생성에 사용할 수 있는 일련의 소켓 주소로 변환하는 데 사용됩니다.

  2. 인자:

    • 첫 번째 인자 NULL: 이는 이 함수가 현재 호스트의 주소를 조회하도록 지시합니다. 즉, 함수는 현재 시스템의 네트워크 인터페이스 주소를 사용합니다.
    • 두 번째 인자 port: 이는 서버가 바인드하려는 특정 포트 번호입니다.
    • 세 번째 인자 &hints: struct addrinfo 타입의 구조체로, 원하는 소켓 타입, 프로토콜, 주소 패밀리 등을 지정하는 데 사용됩니다.
    • 네 번째 인자 &listp: 이는 함수가 결과를 저장할 struct addrinfo 구조체의 리스트를 가리키는 포인터입니다.
  3. 작동 방식: getaddrinfo는 지정된 조건에 맞는 주소 정보를 찾아서 listp가 가리키는 리스트에 저장합니다. 이 정보는 서버나 클라이언트가 소켓을 생성하고, 해당 소켓을 네트워크 주소에 바인드하는 데 사용됩니다.

  4. 결과: 성공적으로 수행되면, getaddrinfo는 0을 반환하고, listp는 사용 가능한 주소들의 리스트를 가리킵니다. 실패할 경우, 오류 코드를 반환합니다.

이 함수는 네트워크 프로그래밍에서 소켓을 설정하고 연결을 수립하는 데 필수적인 역할을 합니다.

0개의 댓글