最近刚刚开始学了socket的模块,就写了一个服务器与客户端交互的程序

有两种模式:

1.就是先电脑自动回复

2.就是人工服务

接下来就是代码了

服务器端的代码:

 1 #Author:陈浩彬
 2 import socket
 3 server=socket.socket()
 4 server.bind(('localhost',9999))
 5 print('--------服务器已启动--------')
 6 server.listen()
 7 duihua={'你好':'你也好','你是谁':'我是 Arthur,我哥叫浩南哥','谁最帅':'当然是我浩南哥'}#可以在这里写一些常用回答
 8 while True:
 9     print('-----------正在连接用户-----------')
10     conn,addr=server.accept()
11     print('--------------已连接用户-------------')
12     print('new conn',addr)
13     while True:
14         date=conn.recv(1024).decode()
15         if not date:
16             print('用户已断开')
17             break
18         elif date in duihua:#自动回答用户问题
19             conn.send(duihua[date].encode('utf-8'))
20         if date=='人工服务':#自己亲自回答用户问题
21             print('---进入人工服务---')
22             conn.send('现在已为你连接人工服务'.encode('utf-8'))
23             while True:
24                 date1=conn.recv(1024).decode()
25                 if date1=='退出':
26                     conn.send('已断开人工服务'.encode('utf-8'))
27                     print('---已断开人工服务---')
28                     break
29                 print('用户问题:',date1)
30                 date2=input('回复:')
31                 conn.send(date2.encode('utf-8'))
32         else:
33             conn.send('我不知道你在说什么,你可用人工服务来解决的需要'.encode('utf-8'))
34 server.close()

View Code

客户端的代码:

 1 #Author:陈浩彬
 2 import socket
 3 client=socket.socket()
 4 client.connect(('localhost',9999))
 5 while True:
 6     say=input('你:').strip()
 7     if len(say)==0:continue
 8     elif say=='F':
 9         client.close()
10         break
11     else:
12         client.send(say.encode('utf-8'))
13         date=client.recv(1024)
14         print('Arthur:',date.decode())

View Code

随意批评,我就是个小白- –

版权声明:本文为Crimeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:http://www.cnblogs.com/Crimeng/p/7909289.html