新手,开始学习python中的socket。有 server.py
import socket
import time
import threading
sock = socket.socket()
sock.bind(('', 9090))
sock.listen(10000000)
clients = []
def clients():
while True:
conn, addr = sock.accept()
if addr not in clients:
clients.append(addr)
else:
pass
t = threading.Thread(target=clients, name='Thread1')
t.start()
while True:
data = input("Text: ")
for client in clients:
sock.sendto(data.encode(), client)
和client.py
import socket
sock = socket.socket()
sock.connect(('localhost', 9090 ))
while True:
data = sock.recv(1024)
print(data.decode())
服务器应该将输入的文本发送给所有客户端。但是在至少一个客户端连接后,它会抛出一个错误——'function'类型的参数是不可迭代的。
该函数
clients
在列表之后声明clients
并覆盖此名称。重命名函数或列表。