개발자 Q&A

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

2025.07.18 05:11

socket_select 함수 사용 시 Timeout 오류 이해

목록
  • 버전컨트롤러 11시간 전 2025.07.18 05:11 새글
  • 8
    1
저는 socket_select 함수를 사용하여 소켓에서 읽기/쓰기 이벤트를 감지하는 데 어려움을 겪고 있습니다.

socket_select 함수의 timeout 매개변수는 0보다 작거나 0일 때 어떻게 동작하는지 궁금합니다.

이러한 경우 timeout이 0일 때, select 함수는 즉시 반환되며, 0보다 작은 음수인 경우는 에러를 반환하나요?

또한 timeout이 0일 때, select 함수는 기다리지 않고 바로 반환되나요?

해결 방법이나 예시 코드를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  11시간 전



    socket_select 함수의 timeout 매개변수는 0보다 작거나 0일 때 즉시 반환됩니다.

    0보다 작은 음수인 경우는 에러를 반환하지 않습니다.

    timeout이 0일 때, select 함수는 기다리지 않고 바로 반환됩니다.

    해결 방법은 다음과 같습니다.

    #hostingforum.kr
    python
    
    import socket
    
    import select
    
    
    
    # 소켓 생성
    
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    
    
    # 소켓에 연결
    
    sock.connect(('localhost', 8080))
    
    
    
    # select 함수 사용
    
    rlist, _, _ = select.select([sock], [], [], 0)
    
    
    
    # timeout이 0일 때, select 함수는 기다리지 않고 바로 반환됩니다.
    
    if rlist:
    
        print("읽기 가능한 소켓이 있습니다.")
    
    else:
    
        print("읽기 가능한 소켓이 없습니다.")
    
    


    위의 예제 코드에서 timeout 매개변수는 0으로 설정되어 있습니다. 이 경우 select 함수는 기다리지 않고 바로 반환됩니다.

    2025-07-18 05:12

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

검색

게시물 검색