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.

相关推荐
祁鱼鱼鱼鱼鱼2 分钟前
Keepalived实验环境设定
linux·服务器·网络
冷雨夜中漫步5 分钟前
python反转列表reverse()和[::-1]哪个效率更高
开发语言·python
Genie cloud5 分钟前
VPS 网络连接故障诊断与排查实用指南
linux·服务器·ssh
rainbow68897 分钟前
Python面向对象编程与异常处理实战
开发语言·python
weixin1997010801611 分钟前
锦程物流item_get - 获取详情接口对接全攻略:从入门到精通
数据库·python
RisunJan12 分钟前
Linux命令-lnstat(快速查找文件和目录)
linux·运维·服务器
2501_9071368231 分钟前
基于Python+QT6的移动硬盘弹出工具
python·软件需求
lihui_cbdd38 分钟前
Slurm 集群内存管理与限制配置
运维·服务器
历程里程碑40 分钟前
Linux 17 程序地址空间
linux·运维·服务器·开发语言·数据结构·笔记·排序算法
CC.GG1 小时前
【Linux】进程控制(二)----进程程序替换、编写自主Shell命令行解释器(简易版)
linux·服务器·数据库