개발자 Q&A

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

2025.04.15 11:20

Socket Timeout 관련 질문

목록
  • W3C마스터 1일 전 2025.04.15 11:20
  • 10
    1
선생님, socket programming에서 socket_set_timeout 함수를 사용하여 소켓의 타임아웃 설정을 하려는데, 타임아웃이 발생한 후에 소켓을 다시 열면 이전에 설정된 타임아웃이 유지되는 것 같아요. 어떻게 해야 타임아웃이 초기화가 될까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    소켓 타임아웃을 초기화하는 방법은 두 가지가 있습니다.

    1. 소켓을 닫고 다시 열기: 소켓 타임아웃을 초기화하려면 소켓을 닫고 다시 열어야 합니다. 소켓을 닫기 위해 `close()` 함수를 사용하고, 다시 열기 위해 `socket()` 함수를 사용합니다.

    #hostingforum.kr
    c
    
    // 이전에 설정된 타임아웃 초기화
    
    close(sock);
    
    sock = socket(AF_INET, SOCK_STREAM, 0);
    
    


    2. 소켓 옵션을 변경하기: 소켓 옵션을 변경하여 타임아웃을 초기화할 수 있습니다. `setsockopt()` 함수를 사용하여 SO_RCVTIMEO 및 SO_SNDTIMEO 옵션을 변경하여 타임아웃을 초기화할 수 있습니다.

    #hostingforum.kr
    c
    
    // 이전에 설정된 타임아웃 초기화
    
    struct timeval timeout;
    
    timeout.tv_sec = 0;
    
    timeout.tv_usec = 0;
    
    setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (const char*)&timeout, sizeof(timeout));
    
    setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (const char*)&timeout, sizeof(timeout));
    
    


    위의 방법 중 하나를 사용하여 소켓 타임아웃을 초기화할 수 있습니다.

    2025-04-15 11:21

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

검색

게시물 검색