通过socket、threading、select模块,实现简化版本的ThreadingTCPServer的功能

import socket
import threading
import select
def process(request, client_address):
print request,client_address
conn = request
conn.sendall('欢迎致电 10086,请输入1xxx,0转人工服务.')
flag = True
while flag:
data = conn.recv(1024)
if data == 'exit':
flag = False
elif data == '0':
conn.sendall('通过可能会被录音.balabala一大推')
else:
conn.sendall('请重新输入.')
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.bind(('127.0.0.1',8002))
sk.listen(5)
while True:
r, w, e = select.select([sk,],[],[],1)
if sk in r:
print 'get request'
request, client_address = sk.accept()
t = threading.Thread(target=process, args=(request, client_address))
t.daemon = False
t.start()
sk.close()
本文介绍如何使用Python的socket、threading和select模块来实现一个简化的ThreadingTCPServer。该服务器能接收客户端连接请求,并为每个客户端创建独立的线程进行交互。示例代码展示了基本的服务流程,包括接受连接、发送欢迎消息、处理客户端输入等。
5318

被折叠的 条评论
为什么被折叠?



