socket的简单例子

最近刚刚开始学了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()
View Code

客户端的代码:

 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

随意批评指点

posted @ 2017-11-28 12:59  实力至上村长  阅读(380)  评论(2编辑  收藏  举报