有没有博主帮我看看是哪里出了bug,我要做一个聊天室
这是客户端
import threading
from socket import *
s = socket()
s.connect((gethostname(), 8888))
name = input('你的名字是:')
s.send(name.encode())
def recv_msg(s):
while True:
print(s.recv(2048).decode())
threading.Thread(target=recv_msg, args=(s,)).start()
while True:
text = input()
s.send(text.encode())
这是服务端
import threading
from socket import *
S = socket()
S.bind((gethostname(), 8888))
S.listen()
s_list = []
n_list = []
def read_client(s,n):
try:
return s.recv(2048).decode()
except:
print(f'{n}下线了')
s_list.remove(s)
s.close()
n_list.remove(n)
print(n_list)
def target_fun(s, n):
while True:
content = read_client(s, n)
msg = s.recv(2048).decode()
if msg is None:
break
else:
print(f'{n}:{msg}')
for ss in s_list:
ss.send(msg.encode())
while True:
try:
s, addr = S.accept()
s_list.append(s)
n = s.recv(1024).decode()
n_list.append(n)
threading.Thread(target=target_fun, args=(s,)).start()
except:
print('error')
break
S.close()
我用的系统是Windows11x64,用的Python3.8.5
在客户端输入名字后,服务器就报错
