개발자 Q&A

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

2025.03.24 00:36

socket_getsockname 함수에 대한 질문

목록
  • Go매니아 2일 전 2025.03.24 00:36
  • 1
    1
선생님, socket_getsockname 함수를 사용할 때, 주소와 포트번호를 얻는 방법에 대해 알려주세요.

예를 들어, 소켓에 대한 정보를 얻고자 할 때, 어떻게 호출해야 하는지 알려주세요.

예시 코드를 통해 어떻게 사용해야 하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    socket_getsockname 함수는 소켓에 대한 주소와 포트번호를 얻는 데 사용됩니다.

    이 함수를 호출하려면, 먼저 소켓을 열어야 합니다. 소켓을 열 때, 소켓 주소 구조체를 초기화하여 주소와 포트번호를 저장합니다.

    예시 코드는 다음과 같습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        int sock;
    
        struct sockaddr_in addr;
    
    
    
        // 소켓을 열기
    
        sock = socket(AF_INET, SOCK_STREAM, 0);
    
        if (sock < 0) {
    
            perror("socket");
    
            return 1;
    
        }
    
    
    
        // 소켓 주소 구조체 초기화
    
        addr.sin_family = AF_INET;
    
        addr.sin_port = htons(8080); // 포트번호
    
        inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr); // IP 주소
    
    
    
        // 소켓에 주소 할당
    
        if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
    
            perror("bind");
    
            return 1;
    
        }
    
    
    
        // 소켓 주소와 포트번호 얻기
    
        socklen_t len = sizeof(addr);
    
        if (getsockname(sock, (struct sockaddr*)&addr, &len) < 0) {
    
            perror("getsockname");
    
            return 1;
    
        }
    
    
    
        // 주소와 포트번호 출력
    
        printf("주소: %s:%dn", inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));
    
    
    
        return 0;
    
    }
    
    


    이 코드에서는 소켓을 열고 주소 할당을 통해 소켓 주소 구조체에 주소와 포트번호를 저장합니다. 그런 다음, `getsockname` 함수를 사용하여 소켓 주소와 포트번호를 얻고 출력합니다.

    2025-03-24 00:37

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

검색

게시물 검색