개발자 Q&A

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

2025.08.08 17:46

socket_recvfrom 함수 사용에 대한 질문

목록
  • W3C마스터 3시간 전 2025.08.08 17:46 새글
  • 1
    1
저는 socket programming을 공부하고 있는 중인데, socket_recvfrom 함수에 대한 이해가 잘 안됩니다.

socket_recvfrom 함수는 소켓에서 데이터를 수신하는 함수로, 소켓에서 데이터를 받을 때 사용합니다. 하지만, 이 함수의 반환값을 이해하지 못하고 있습니다.

socket_recvfrom 함수의 반환값은 무엇이며, 이 값을 어떻게 사용해야 하는지 알려주실 수 있나요?

    댓글목록

    profile_image
    나우호스팅  3시간 전



    socket_recvfrom 함수는 소켓에서 데이터를 수신하는 함수로, 반환값은 다음과 같습니다.

    - 반환값 1: 수신한 데이터의 바이트 수
    - 반환값 2: 수신한 데이터가 담긴 버퍼
    - 반환값 3: 소켓의 주소 정보를 담은 구조체

    이 값을 사용하기 위해서는 반환값 1을 통해 수신한 데이터의 크기를 확인하고, 반환값 2를 통해 수신한 데이터를 확인할 수 있습니다. 반환값 3을 통해 소켓의 주소 정보를 확인할 수 있습니다.

    예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        int sockfd;
    
        struct sockaddr_in addr;
    
        socklen_t addrlen = sizeof(addr);
    
        char buffer[1024];
    
    
    
        // 소켓 생성 및 연결
    
        sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    
        addr.sin_family = AF_INET;
    
        addr.sin_port = htons(8080);
    
        inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr);
    
        connect(sockfd, (struct sockaddr *)&addr, sizeof(addr));
    
    
    
        // 데이터 수신
    
        int bytes_received = recvfrom(sockfd, buffer, 1024, 0, (struct sockaddr *)&addr, &addrlen);
    
        printf("Received %d bytes from %s:%dn", bytes_received, inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));
    
        printf("Received message: %sn", buffer);
    
    
    
        return 0;
    
    }
    
    


    이 예제에서는 recvfrom 함수를 사용하여 데이터를 수신하고, 수신한 데이터의 크기와 내용을 확인합니다.

    2025-08-08 17:47

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

검색

게시물 검색