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.

相关推荐
javpy几秒前
AI生成 Python小游戏 怪物防御战???
人工智能·python·pygame
爱笑的眼睛116 分钟前
超越SIFT与ORB:深入OpenCV特征检测API的设计哲学与高阶实践
java·人工智能·python·ai
中年程序员一枚13 分钟前
python开发接口uvicorn方法启动FastAPI,postman调用接口
python·postman·fastapi
周杰伦_Jay25 分钟前
【LangGraph】图结构智能体框架核心特性
python·开源
CAFEBABE 3426 分钟前
安装完docker之后怎么使用
运维·docker·容器
智象科技28 分钟前
化繁为简:一体化运维平台的效率革命
运维·it运维·一体化运维·itsm
萧技电创EIIA32 分钟前
威纶通触摸屏入门指南(从安装到入门使用)
运维·服务器·网络
我是koten32 分钟前
用Ansible查找文件并记录文件名的playbook
linux·运维·centos·ssh·ansible·find·playbook
wanhengidc39 分钟前
在线服务器的应用场景都有哪些?
运维·服务器·科技·游戏·智能手机·云计算