制作 TCP 聊天室并在线程中出错

Making a TCP Chatroom and getting error in threading

使用套接字和线程制作 TCP 聊天室但在线程中出现错误。
客户端是本地客户端,另一个客户端使用另一个设备。
服务器日志发生错误

服务器端有句柄函数,它给出了应该是可迭代的而不是套接字的错误,所以我该如何解决它。 服务器端:

# Sending Messages To All Connected Clients
def broadcast(message):
    for client in clients:
        client.send(message)

# Handling Messages From Clients
def handle(client):
    while True:
        try:
            # Broadcasting Messages
            message = client.recv(1024)
            broadcast(message)
        except:
            # Removing And Closing Clients
            index = clients.index(client)
            clients.remove(client)
            client.close()
            nickname = nicknames[index]
            broadcast('{} left!'.format(nickname).encode('ascii'))
            nicknames.remove(nickname)
            break

# Receiving / Listening Function
def receive():
    while True:
        # Accept Connection
        client, address = server.accept()
        print("Connected with {}".format(str(address)))

        # Request And Store Nickname
        client.send('NICK_NAME'.encode('ascii'))
        nickname = client.recv(1024).decode('ascii')
        nicknames.append(nickname)
        clients.append(client)

        # Print And Broadcast Nickname
        print("Nickname is {}".format(nickname))
        broadcast("{} joined!".format(nickname).encode('ascii'))
        client.send('Connected to server!'.encode('ascii'))

        # Start Handling Thread For Client
        thread = threading.Thread(target=handle, args=(client))
        thread.start()

receive()
input('Press Enter to Close the Server.')

客户端:

# Listening to Server and Sending Nickname
def receive():
    while True:
        try:
            # Receive Message From Server
            # If 'NICK_NAME' Send Nickname
            message = client.recv(1024).decode('ascii')
            if message == 'NICK_NAME':
                client.send(nickname.encode('ascii'))
            else:
                print(message)
        except:
            # Close Connection When Error
            print("An error occured!")
            client.close()
            break

# Sending Messages To Server
def write():
    while True:
        message = '{}: {}'.format(nickname, input(''))
        client.send(message.encode('ascii'))

# Starting Threads For Listening And Writing
receive_thread = threading.Thread(target=receive)
receive_thread.start()

write_thread = threading.Thread(target=write)
write_thread.start()

在服务器端连接到服务器时出现以下错误:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Users\Anil soni\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 932, in _bootstrap_inner
    self.run()
  File "C:\Users\Anil soni\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
TypeError: handle() argument after * must be an iterable, not socket

使用 python 3.8.5 和 VS 代码
谢谢

在参数中添加 , 有效!!!

thread = threading.Thread(target=handle, args=(client,))