인프런 커뮤니티 질문&답변
질문드립니다.
작성
·
261
퀴즈
40%나 틀려요. 한번 도전해보세요!
네트워크 프로그래밍에서 서버와 클라이언트의 주된 역할 구분은 무엇인가요?
서버는 연결을 시작하고 클라이언트는 대기한다
서버는 서비스를 제공하고 클라이언트는 대기한다
클라이언트는 연결을 시작하고 서버는 대기한다
클라이언트와 서버 모두 연결을 시작할 수 있다
답변 2
1
남박사
지식공유자
2번째 스샷에서 입력은 쓰레드로 동작하고 있지않으며 /bye 를 입력하면 break 가 되야할텐데 일단 코드만 봐서 어떤 상황인지 제가 예측하기가 어렵습니다만.. 위의 오류는 추측하건데 input() 을 대기하던 도중에 쓰레드가 종료되면서 발생하는 오류로 보여집니다. /bye 가 2번째 스샷인 코드에서 이뤄졌다면 별 문제가 없어야 정상일듯 합니다만...
if msg == "/bye": 다음 break 하기 전에 print("break") 를 넣고 sock.close() 전에 print("before socket close") 그리고 sock.close() 다음줄에 print("after socket close") 를 추가 작성하여 어느 부분에서 오류가 발생하는지 추적해보시는게 어떨까 합니다.
0
현주민
질문자
말씀해주신대로 print 해서 추적해보았더니 sock.close() 함수에서 문제가 있었던 듯 합니다. while 문부터 새로 다시 코드를 짜면서 해결했습니다 감사합니다!!





