我正在尝试将一些参数传递给服务器,但我不知道如何?
这是我的代码:
HOST, PORT = socket.gethostbyname( socket.gethostname() ), 31000
self.server = SocketServer.ThreadingTCPServer( ( HOST, PORT ), MCRequestHandler )
ip, port = self.server.server_address
self.server_thread = threading.Thread( target = self.server.serve_forever )
这是 MCRequestHandler
class MCRequestHandler( SocketServer.BaseRequestHandler ):
global Lidars, clientsLock, postbox
Lidars = []
postbox = {}
clientsLock = threading.RLock()
def setup( self ):
clientsLock.acquire()
如何将一两个参数传递给 MCRequestHandler 类?
我认为ThreadingTCPServer的第二个参数是一个工厂:
SocketServer.ThreadingTCPServer( ( HOST, PORT ), MCRequestHandler )
你能做的就是在这里拥有自己的工厂。类将构造一个可调用对象。当调用该对象时,它将使用给工厂的参数初始化 MCRequestHandler:
class MyRequestHandlerFactory(object):
def __init__(self, param1, param2):
self.param1 = param1
self.param2 = param2
def __call__(self):
handler = MCRequestHandler()
handler.param1 = param1
handler.param2 = param2
然后初始化:
factory = MyRequestHandlerFactory("x", "y")
SocketServer.ThreadingTCPServer( ( HOST, PORT ), factory)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)