Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择模块:套接字服务器遇到类型错误。[Python]_Python_Select_Module_Typeerror - Fatal编程技术网

选择模块:套接字服务器遇到类型错误。[Python]

选择模块:套接字服务器遇到类型错误。[Python],python,select,module,typeerror,Python,Select,Module,Typeerror,问题直接在于我的套接字服务器中的select.select行 r_list, w_list, x_list = select.select(U_Connections + [ss], Username_List, []) 其中: Username_List = [] U_Connections = [] 问题在于用户名\u列表 Username\u List只应该做一件事,那就是存储服务器接收的用户名。每当服务器接收到数据时,它都会检查username\u列表中是否有该用户名(已接收数据)

问题直接在于我的套接字服务器中的
select.select

r_list, w_list, x_list = select.select(U_Connections + [ss], Username_List, [])
其中:

Username_List = []
U_Connections = []
问题在于
用户名\u列表

Username\u List
只应该做一件事,那就是存储服务器接收的用户名。每当服务器接收到数据时,它都会检查
username\u列表中是否有该用户名(已接收数据)

如果它在那里,它只会继续移动,并忽略接收到的数据

如果不是,它会将数据添加到列表中,然后向所有连接的客户端发送新用户名。这就是程序崩溃的地方

if data:
    translated_data = data.decode()
    print(translated_data)
    print("2")
    if translated_data in Username_List:
        pass
    else:
        translated_data_string = str(translated_data)
        Username_List.append(translated_data_string)    <--- HERE
        print("3")

您可以共享包含异常消息的完整trackback吗?因此,
Username\u list
不是一个包含套接字、对象或表示文件描述符的整数的列表?在
Username\u列表
上选择,您试图实现什么?第二个参数应该是您要开始写入的文件或套接字的列表,
select()
将告诉您哪些文件或套接字已准备就绪。我认为Username\u list表示的是一个空列表,它正在等待数据写入某个对象。因此,当我在列表中插入一个字符串,然后while循环在w_列表中为I传递:它将执行我要求它执行的任何操作。我想这是一个不正确的解释…不,这确实是不正确的。您需要给出要写入的
select
套接字,当
select
在第二个参数中返回它们时,它们就可以写入了。然后将数据直接发送到这些套接字。我可以使用它接收的套接字吗?你是说选择只在w_列表“可用”时才执行它告诉的操作吗。这让我很困惑。
Traceback (most recent call last):
  File "C:\Users\Owatch\Documents\Unisung\Produced Content\NetSendClient[0.7]\NetSendClient[0.7]\NetSendClient\files\Program_Files\Username_Server.py", line 23, in <module>
    r_list, w_list, x_list = select.select(U_Connections + [ss], Username_List, [])
TypeError: argument must be an int, or have a fileno() method.