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的人-建议函数使用lowercase
或snake_case
-并且大写名称(即所谓的CamelCase
(应仅用于类