[python]select.select의 non-block에 대해서

안녕하세요. 온라인 책을 너무 잘 읽고 있습니다.
현재 제가 보고 있는 내용은 이것입니다.
https://wikidocs.net/125626
소켓 통신은 유저마다 스레드를 늘려야 한다는 부작용이 있지만
select.select는 이를 간단히 해결해줍니다.
문제는 select.select가 기본적으로 block 형식인지라 특정 API(ex: discord.py)에서 사용하면 s.setblocking(False)를 설정해서 강제로 변환해줘도 같은 결과가 나온다는 것입니다.
s(소켓)와 conn(socket.accept()[0]) 양쪽에 논블록을 적용해도 같은 결과가 나옵니다.(클라이언트와 연결을 하지 않은 상태에서도 하트비트 블로킹이 생기더라요) 물론 getblocking() 으로 조회하면 둘 다 False로 나옵니다.
이에 대해 논블록으로 변환할 방법은 없는지 여쭙고 싶습니다.
추가로, UDP에서도 뭔가 별도로 신경쓸 것이 있는지 궁금합니다.

shechren 676

M 2022년 12월 7일 9:48 오전

@박응용님 답변 감사합니다. 해당 글도 이미 읽었던 글이긴 하지만 참고해서 다시 코드를 수정해보겠습니다. - shechren님, 2022년 12월 7일 10:27 오전 추천 , 대댓글
목록으로