最近刚刚开始学了socket的模块,就写了一个服务器与客户端交互的程序
有两种模式:
1.就是先电脑自动回复
2.就是人工服务
接下来就是代码了
服务器端的代码:
1 import socket 2 server=socket.socket() 3 server.bind(('localhost',9999)) 4 print('--------服务器已启动--------') 5 server.listen() 6 duihua={'你好':'你也好','你是谁':'我是 Arthur,我哥叫浩南哥','谁最帅':'当然是我浩南哥'}#可以在这里写一些常用回答 7 while True: 8 print('-----------正在连接用户-----------') 9 conn,addr=server.accept() 10 print('--------------已连接用户-------------') 11 print('new conn',addr) 12 while True: 13 date=conn.recv(1024).decode() 14 if not date: 15 print('用户已断开') 16 break 17 elif date in duihua:#自动回答用户问题 18 conn.send(duihua[date].encode('utf-8')) 19 if date=='人工服务':#自己亲自回答用户问题 20 print('---进入人工服务---') 21 conn.send('现在已为你连接人工服务'.encode('utf-8')) 22 while True: 23 date1=conn.recv(1024).decode() 24 if date1=='退出': 25 conn.send('已断开人工服务'.encode('utf-8')) 26 print('---已断开人工服务---') 27 break 28 print('用户问题:',date1) 29 date2=input('回复:') 30 conn.send(date2.encode('utf-8')) 31 else: 32 conn.send('我不知道你在说什么,你可用人工服务来解决的需要'.encode('utf-8')) 33 server.close()
客户端的代码:
1 import socket 2 client=socket.socket() 3 client.connect(('localhost',9999)) 4 while True: 5 say=input('你:').strip() 6 if len(say)==0:continue 7 elif say=='F': 8 client.close() 9 break 10 else: 11 client.send(say.encode('utf-8')) 12 date=client.recv(1024) 13 print('Arthur:',date.decode())
随意批评指点