TypeError: * 뒤의 recv_thread() 인수는 소켓이 아니라 반복 가능해야 합니다.

실수

TypeError: * 뒤의 recv_thread() 인수는 소켓이 아니라 반복 가능해야 합니다.

이유

이 오류는 스레드를 생성할 때 소켓 개체가 args 매개 변수로 recv_thread 함수에 전달되기 때문에 발생하며 args 매개 변수에는 튜플 또는 목록과 같은 반복 가능한 개체가 필요합니다.

해결책

소켓 개체에 쉼표를 추가하여 튜플로 변환하면 이 문제를 해결할 수 있습니다. 코드는 다음과 같습니다.

def recv_thread(sock):
    while True:
        data = sock.recv(1024).decode()

thread = threading.Thread(target=recv_thread, args=(s))

다음과 같이 변경할 수 있습니다.

def recv_thread(sock):
    while True:
        data = sock.recv(1024).decode()
        
thread = threading.Thread(target=recv_thread, args=(s,))

이런 식으로 * 뒤의 TypeError: recv_thread() 인수는 iterable이어야 하며 not socket 오류를 피할 수 있습니다.

(1) Python 스레딩 모듈 * 뒤의 Error 인수는 int가 아니라 iterable이어야 합니다. 다중 스레딩 - Python 스레딩 모듈 * 뒤의 오류 인수는 int가 아니라 반복 가능해야 합니다 .
(2) TypeError: * 뒤의 send() 인수는 소켓이 아니라 반복 가능해야 합니다. ....  [해결됨]TypeError: * 뒤의 send() 인수는 반복 가능해야 합니다 .
(3) Python 스레딩 오류 - int가 아니라 반복 가능해야 합니다. 다중 스레딩 - Python 스레딩 오류 - int가 아니라 반복 가능해야 합니다 .
(4) python - TypeError: * 뒤의 add() 인수는 ...가 아니라 반복 가능해야 합니다.  python - TypeError: * 뒤의 add() 인수는 설정이 아니라 반복 가능해야 합니다. - Stack Overflow .

Guess you like

Origin blog.csdn.net/CHNIM/article/details/132210811