client() 缺少 2 个必需的位置参数:"conn"和"addr"


import threading
import time
Host = socket.gethostbyname(socket.gethostname())
port = 4444
Recived_Bytes = 1024
Format = 'utf-8'

def Client(conn, addr):
print(f" New Client Connected : {addr} Connected : ")
connected = True
while connected:
length = conn.recv(Recived_Bytes).decode(Format)
length = int(length)
if length:
msg = conn.recv(length).decode(Format)
print(f"[Client {addr}says : ]{msg}")
if msg == "disconnect" or msg == "Disconnect" or msg == "DISCONNECT":
connected = False
conn.close()

def start():
sever.listen()
while True:
conn, addr = sever.accept()
thread = threading.Thread(target=Client(), args=(conn, addr))
thread.start()
print("Connection : ")

if __name__ == '__main__':
print("Hello Zaeem ")
print(Host)
ADDR = (Host, port)
sever = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sever.bind(ADDR)
start()

错误我正面临错误

Traceback(最后一次调用(:文件";C:/Users/zaeem/PycharmProjects/socketprogramming/main.py";,第40行,instart((文件";C:/Users/zaeem/PycharmProjects/socketprogramming/main.py";,第29行,开始thread=螺纹。线程(target=Client((,args=(conn,addr((TypeError:Client((缺少2个必需的位置参数:"conn"one_answers"addr">

您在该行中调用客户端函数-您需要的是:

thread = threading.Thread(target=Client, args=(conn, addr))

请注意,在这篇文章中,您在Client之后去掉了((,所以您不想调用Client,您只是在传递对Client函数的引用。

正如我的评论中所提到的-使用Client作为名称会误导了解Python的人-建议函数使用lowercasesnake_case-并且大写名称(即所谓的CamelCase(应仅用于类

最新更新