找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3220|回复: 1

[已回复] StreamRequestHandler参数传输问题?

1

主题

2

帖子

2

积分

贫民

积分
2
kyzrong 发表于 2017-4-12 20:25:57 | 显示全部楼层 |阅读模式
先看代码:
  1. #-*- coding:utf-8 -*-

  2. from SocketServer import ThreadingTCPServer, StreamRequestHandler
  3. import traceback

  4. class MyStreamRequestHandlerr(StreamRequestHandler):
  5.         def handle(self):
  6.                 while True:
  7.                         try:
  8.                                 data = self.rfile.readline().strip()
  9.                                 if len(data) == 0:
  10.                                         break
  11.                                 print "receive from (%r):%r" % (self.client_address, data)
  12.                                 self.wfile.write(data.upper())
  13.                         except:
  14.                                 print "Time out!"
  15.                                 break
  16.                                 
  17. if __name__ == "__main__":
  18.         host = ""
  19.         port = 9999         #端口
  20.         addr = (host, port)
  21.         server = ThreadingTCPServer(addr, MyStreamRequestHandlerr)
  22.         server.serve_forever()
复制代码
------------------------------------------------------------
在服务器监听端口多线程程序当中,通常是重写:BaseRequestHandler类的handle方法。

BaseRequestHandler类如下:

  1. class BaseRequestHandler:
  2.     def __init__(self, request, client_address, server):
  3.         self.request = request
  4.         self.client_address = client_address
  5.         self.server = server
  6.         self.setup()
  7.         try:
  8.             self.handle()
  9.         finally:
  10.             self.finish()

  11.     def setup(self):
  12.         pass

  13.     def handle(self):
  14.         pass

  15.     def finish(self):
  16.         pass
复制代码
问题:
我要如何重写这个类,可以将我想要的一个参数传递到handle这个方法当中去呢?
即当有客户端连接进来时,会进入到handle这个循环当中处理数据,而我想将一个参数传输到handle当中去。
望高手指点一下。
回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2017-4-14 10:37:41 | 显示全部楼层
如果不能改base类,只能通过增加成员变量的方法来实现啦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表