ThreadingTCPServer的简化代码实现

转载 2017年01月04日 01:27:24

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

wKioL1aP5aCzKQNZAApDnCMq63M315.jpg

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()



相关文章推荐

ThreadingTCPServer 如何设置端口重用

一个典型的TCPServer的建立 #ThreadingTCPServer从ThreadingMixIn和TCPServer继承 #class ThreadingTCPServer(...

Python的SocketServer中的类ThreadingTCPServer/TCPServer/ForkingTCPServer区别

本文主要讲解ThreadingTCPServer/TCPServer/ForkingTCPServer的区别,原理可同样引申到UDP 这三个类其实就是对接收到request请求后的不同处理方法。这里我...

Python使用ThreadingTCPServer创建多线程代理

#coding=utf8 from BaseHTTPServer import BaseHTTPRequestHandler from SocketServer import ThreadingTCP...

Python使用TCPServer编写(多线程)Socket服务

SocketServer包对socket包进行了包装(封装),使得创建socket服务非常简单。 TCPServer+BaseRequestHandler 使用TCPServer和BaseRe...

线性表c代码实现

  • 2017年10月22日 15:53
  • 780KB
  • 下载

编译原理(九) LR(0)文法分析法(算法描述和C++代码实现)

概念梳理 最左推导:每一步替换最左边的非终结符  最右推导:每一步替换最右边的非终结符,最右推导称为规范推导  短语:令G是一个文法,S是文法的开始符号,假定αβδ是文法G的一个句型,如果有...

链表c代码实现

  • 2017年10月22日 15:55
  • 783KB
  • 下载

C++ MongoDB 连接池代码实现

  • 2017年10月08日 18:53
  • 12KB
  • 下载

DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)

本文主要讲解将CNN应用于人脸识别的流程,程序基于python+numpy+theano+PIL开发,采用类似LeNet5的CNN模型,应用于olivettifaces人脸数据库,实现人脸识别的功能,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ThreadingTCPServer的简化代码实现
举报原因:
原因补充:

(最多只允许输入30个字)