실수
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 .