# 服务端
from threading import Thread
from socket import *
def talk(conn, addr):
print(addr, '连接成功!')
conn.send('========= 欢迎来到天上人间洗浴按摩中心 ========='.encode('utf-8'))
while True:
try:
client_res = conn.recv(1024)
if len(client_res) == 0: break
if client_res.decode('utf-8') == 'tank':
conn.send('工号9521 tank为您服务'.encode('utf-8'))
elif client_res.decode('utf-8') == 'egon':
conn.send('工号9527 egon为您服务'.encode('utf-8'))
elif client_res.decode('utf-8') == 'jason':
conn.send('工号9523 jason为您服务'.encode('utf-8'))
else:
conn.send('抱歉尊贵的顾客,我店无此员工哦'.encode('utf-8'))
except ConnectionResetError as e:
print(e)
break
conn.close()
if __name__ == '__main__':
server = socket() # 括号内不传参默认是TCP(AF_INET SOCK_STREAM)
server.bind(('127.0.0.1', 8080))
server.listen(5)
while True:
print('正在连接...')
conn, addr = server.accept()
t = Thread(target=talk, args=(conn, addr))
t.start()
# 客户端
from socket import *
client = socket(AF_INET, SOCK_STREAM)
client.connect(('127.0.0.1', 8080))
server_res = client.recv(1024)
print(server_res.decode('utf-8'))
while True:
cmd = input("请指定服务人选[jason,egon,tank]:").strip()
if len(cmd) == 0:continue
if cmd == 'exit':break
client.send(cmd.encode('utf-8'))
cmd_res = client.recv(1024)
print(cmd_res.decode('utf-8'))
client.close()