Discuss / Python / 写了一个简单的远程计算器 但是不知道为什么不能处理客户端的退出请求

写了一个简单的远程计算器 但是不知道为什么不能处理客户端的退出请求

Topic source

服务器: import socket,threading,time

def link(sock,addr): sock.send('连接远程服务器成功,请继续操作....'.encode('utf-8')) print('客户端连入成功.....') print('ip:%s,端口:%s'%addr)
while True: data=sock.recv(1024) if data.decode('utf-8') != '退出': sock.send(('计算结果:%s...'%eval(data.decode('utf-8'))).encode('utf-8')) else: sock.close() break

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind(('127.0.0.1',5000)) s.listen(4) print('等待连接.....') while True: sock , addr =s.accept() t=threading.Thread(target=link,args=(sock,addr)) t.start()

客户端: import socket,time

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('127.0.0.1',5000)) print(s.recv(1024).decode('utf-8')) while True: a=input('请输入值:') s.send(a.encode('utf-8')) data=s.recv(1024) print(data.decode('utf-8'))

疯子多cai

#2 Created at ... [Delete] [Delete and Lock User]

和客户端的连接sock应该是可以关闭的吧。服务器端的主socket(接收不同客户端的 s 是无线循环运行,只能手动)


  • 1

Reply