• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

질문드립니다.

20.09.17 23:14 작성 조회수 134

1

안녕하세요. 오류에 대해 질문드립니다.

위의 캡처 두개는 제가 작성한 코드이고, 세번째 캡처는 채팅방에서 "/bye"를 입력했을 때 나타나는 오류입니다.  선생님과 똑같이 작성했고, 처음보는 오류라 질문드립니다.. 어떤 오류인지 알 수 있을까요?

답변 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

현주민님의 프로필

현주민

질문자

2020.09.18

말씀해주신대로 print 해서 추적해보았더니 sock.close() 함수에서 문제가 있었던 듯 합니다. while 문부터 새로 다시 코드를 짜면서 해결했습니다 감사합니다!!