켓 프로그래밍 제일 앞에 나오는 메세지 주고 받기 하는데
received_>if not received_data: break
요부분에 이해가 안가는 부분이 있어서
recv()가 송신측이 보내온 바이트코드를 리턴하게 되는데
바이트코드가 도착하기 전까지는 블락킹 상태로 멍때리고 있는 거잖아
이 상태에서 빈 바이트 코드를 보내면 received_data가 if not에 걸려서 break로 넘어갈거고
그런데 내가 리눅스에서 Ctrl + C로 송신측을 강제로 종료시키니까
수신측도 같이 종료되더라고
내 생각에 송신측을 중간에 종료시키면 신호를 보내지 않았으니까
수신측이 마냥 기다리고 있어야할 것 같은데 말이지
(타임아웃도 None으로 설정되어있는 상태임)
그렇다면 송신측이 종료될 때 어떤 식으로든 우리 끝난다고 신호를 보낸다는 건가?
클라이언트쪽 리눅스가 Ctrl + C로 클라이언트 파이썬 쪽에 종료 시그널 보내면
클라이언트쪽 파이썬이 키보드 인터럽트를 일으키는 것까지는 화면에 출력되니 확실한데..
키보드 인터럽트가 일어나면 알아서 서버쪽으로 우리 종료됐다라는 신호를 보내주는 것??
received
망할 코드가 자꾸 잘리네