socket的簡單例子
阿新 • • 發佈:2017-11-28
import 退出 交互 也好 lose ddr conn utf-8 需要
最近剛剛開始學了socket的模塊,就寫了一個服務器與客戶端交互的程序
有兩種模式:
1.就是先電腦自動回復
2.就是人工服務
接下來就是代碼了
服務器端的代碼:
1 import socket 2 server=socket.socket() 3 server.bind((‘localhost‘,9999)) 4 print(‘--------服務器已啟動--------‘) 5 server.listen() 6 duihua={‘你好‘:‘你也好‘,‘你是誰‘:‘我是 Arthur,我哥叫浩南哥‘,‘誰最帥‘:‘當然是我浩南哥‘}#可以在這裏寫一些常用回答 7 whileView CodeTrue: 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 elifdate 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 ifdate1==‘退出‘: 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())View Code
隨意批評指點
socket的簡單例子