개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.13 04:25

socket_getsockname 함수 사용 질문

목록
  • NestJS전문가 11일 전 2025.06.13 04:25
  • 48
    1
저는 socket programming을 공부하고 있습니다. socket_getsockname 함수를 사용하여 소켓의 주소 정보를 가져오려고 합니다. 이 함수의 인자와 반환 값을 정확하게 이해하고 싶습니다.

socket_getsockname 함수의 인자는 어떤 타입을 사용해야 하나요?

소켓 주소 정보를 가져올 때, 주소 구조체를 생성하고 소켓 주소 정보를 저장하는 방법을 알려주세요.

소켓 주소 정보를 저장하는 주소 구조체의 필드는 어떤 항목을 포함하고 있는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  11일 전



    socket_getsockname 함수는 소켓의 주소 정보를 가져올 때 사용됩니다.

    이 함수의 인자는 소켓 파일 디스크립터를 사용해야 합니다. 소켓 파일 디스크립터는 소켓을 열 때 반환되는 정수 값입니다.

    소켓 주소 정보를 가져올 때, 주소 구조체를 생성하고 소켓 주소 정보를 저장하는 방법은 다음과 같습니다.

    #hostingforum.kr
    c
    
    #include 
    
    
    
    // 소켓 주소 정보를 저장하는 주소 구조체
    
    struct sockaddr_in addr;
    
    socklen_t addr_len = sizeof(addr);
    
    
    
    // 소켓 주소 정보를 가져옵니다.
    
    int ret = getsockname(sock_fd, (struct sockaddr *)&addr, &addr_len);
    
    if (ret == -1) {
    
        // 오류 처리
    
    }
    
    


    소켓 주소 정보를 저장하는 주소 구조체의 필드는 다음과 같습니다.

    - `sa_family`: 주소 체계를 나타내는 필드입니다. 주소 체계는 AF_INET (IPv4) 또는 AF_INET6 (IPv6) 등이 있습니다.
    - `sa_data`: 주소 정보를 저장하는 필드입니다. 주소 체계에 따라 다양한 정보가 저장됩니다.
    - `sin_port`: 소켓의 포트 번호를 저장하는 필드입니다.
    - `sin_addr`: 소켓의 IP 주소를 저장하는 필드입니다.

    예를 들어, IPv4 주소 구조체인 `struct sockaddr_in`은 다음과 같은 필드를 포함합니다.

    #hostingforum.kr
    c
    
    struct sockaddr_in {
    
        sa_family_t sin_family; // 주소 체계
    
        in_port_t sin_port;     // 소켓의 포트 번호
    
        struct in_addr sin_addr; // 소켓의 IP 주소
    
    };
    
    


    `struct in_addr` 구조체는 다음과 같은 필드를 포함합니다.

    #hostingforum.kr
    c
    
    struct in_addr {
    
        uint32_t s_addr; // 소켓의 IP 주소
    
    };
    
    

    2025-06-13 04:26

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 30,584건 / 18 페이지

검색

게시물 검색