TypeError: recv_thread() argument after * must be an iterable, not socket

错误

TypeError: recv_thread() argument after * must be an iterable, not socket的问题。

原因

这个错误是由于在创建一个线程时,将socket对象作为args参数传递给了recv_thread函数,而args参数需要一个可迭代的对象,比如元组或列表。

解决办法

可以通过在socket对象后面加一个逗号,将其转换为一个元组,来解决这个问题。代码是这样的:

复制代码
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() argument after * must be an iterable, not socket的错误了。

(1) Python Threading module Error argument after * must be an iterable, not int. multithreading - Python Threading module Error argument after * must be an iterable, not int - Stack Overflow.

(2) TypeError: send() argument after * must be an iterable, not socket in .... [Solved]TypeError: send() argument after * must be an iterable, not socket in Python.

(3) Python threading error - must be an iterable, not int. multithreading - Python threading error - must be an iterable, not int - Stack Overflow.

(4) python - TypeError: add() argument after * must be an iterable, not .... python - TypeError: add() argument after * must be an iterable, not Settings - Stack Overflow.

相关推荐
w***48822 小时前
Linux安装redis
linux·运维·redis
门框研究员2 小时前
解锁Python的强大能力:深入理解描述符
python
wanhengidc3 小时前
深度了解云手机是什么
运维·服务器·科技·智能手机·云计算
python百炼成钢3 小时前
28.嵌入式 Linux LED 驱动开发实验
linux·运维·驱动开发
子不语1803 小时前
Python——函数
开发语言·python
daidaidaiyu4 小时前
一文入门 LangChain 开发
python·ai
JJ1M84 小时前
用 Python 快速搭建一个支持 HTTPS、CORS 和断点续传的文件服务器
服务器·python·https
汤姆yu5 小时前
基于python大数据的小说数据可视化及预测系统
大数据·python·信息可视化
x***J3485 小时前
Python多线程爬虫
开发语言·爬虫·python
m***D2865 小时前
Python网络爬虫实战案例
开发语言·爬虫·python