socket socketserver

socketserver 可以提供多线程的方式处理client 发过来的请求

# -*- coding: utf-8 -*-
'''
1.创建一个请求处理类, 这个类要继承BaseRequestHandler , 重写handle() 方法  , 与客户端所有的交互都是在handle 这个 方法中完成的

2.实例化TCPServer , 传递 server ip 和第一步创建的请求处理类给这个TCPServer

3.调用handle_request 或者server_forever 方法
server.handle_request() 方法值处理一个请求
server.server_forever() 方法处理多个请求

4.调用server.close() 关闭
'''

import socketserver
 
#1.创建一个请求处理类
class myTCPServer(socketserver.BaseRequestHandler):
    #.重写handle
    def handle(self):
         while True:
            #接收客户端的数据 
#             try: 3.0 如果有异常说明client 断开
                self.data = self.request.recv(1024)
                print(self.client_address[0])
                if not self.data:
                    break
                
                self.request.send(self.data.upper())
                
                
#             except Exception as e:
#                 print("客户端断开",e)
#                 break

HOST,PORT = "localhost",6969
#2.实例化TCPServer   , ThreadingTCPServer 是多并发
server = socketserver.ThreadingTCPServer((HOST,PORT),myTCPServer)

#3.调用server.server_forever()
server.serve_forever()
                

 

posted on 2017-12-07 16:22  gaizhongfeng  阅读(135)  评论(0编辑  收藏  举报