개발자 Q&A

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

2025.07.17 17:04

socket_recv() 함수 사용법에 대한 질문

목록
  • 알고리즘장인 15시간 전 2025.07.17 17:04 새글
  • 10
    1
제가 socket_recv() 함수를 사용하여 데이터를 수신할 때, 버퍼의 크기를 지정하지 않으면 어떻게 될까요?
그리고 버퍼의 크기를 지정했을 때, 데이터가 버퍼의 크기보다 큰 경우 어떻게 처리하는 것이 좋을까요?

    댓글목록

    profile_image
    나우호스팅  15시간 전



    socket_recv() 함수를 사용하여 데이터를 수신할 때, 버퍼의 크기를 지정하지 않으면 데이터가 버퍼에 저장되지 않습니다. 이 경우, socket_recv() 함수는 수신한 데이터의 크기를 반환하고, 데이터는 버퍼에 저장되지 않습니다.

    버퍼의 크기를 지정했을 때, 데이터가 버퍼의 크기보다 큰 경우, socket_recv() 함수는 데이터를 버퍼에 저장하고 나머지 데이터는 다시 수신해야 합니다. 이 경우, socket_recv() 함수를 반복적으로 호출하여 나머지 데이터를 수신해야 합니다.

    예를 들어, 버퍼의 크기가 1024 byte이고 데이터가 2048 byte인 경우, socket_recv() 함수를 두 번 호출하여 나머지 데이터를 수신해야 합니다.

    #hostingforum.kr
    c
    
    char buffer[1024];
    
    int bytes_received = socket_recv(sock, buffer, sizeof(buffer), 0);
    
    
    
    if (bytes_received < 1024) {
    
        // 나머지 데이터를 수신하기 위해 socket_recv() 함수를 다시 호출
    
        char remaining_data[1024];
    
        int remaining_bytes = socket_recv(sock, remaining_data, sizeof(remaining_data), 0);
    
        // 나머지 데이터를 버퍼에 추가
    
        memcpy(buffer + bytes_received, remaining_data, remaining_bytes);
    
    }
    
    

    2025-07-17 17:05

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

검색

게시물 검색