BaseRequestHandler Parameter übergeben

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
dessp
User
Beiträge: 1
Registriert: Montag 23. Juli 2012, 13:56

Hallo,

ich habe mir aus verschieden Anleitungen in diesem Weltnetz ein Python Socket-Server zusammengebastelt. Ich rufe die serverThread Class als Thrad auf die dann wiederrumm den Socket öffnet. Das klappt auch wunderbar. Nur suche ich eine möglichkeit aus der serverThread weitere Parameter an den Socket Handler zu übergeben das ich in der handle() auf die Varieable status zugreifen kann die dem serverThread in der funktion set übergeben wird.

Ich habe bis jetzt leider keine möglichkeit gefunden das einzurichten, hat hier jemand einen Tipp für mich?

Code: Alles auswählen


import json
import os
import ConfigParser
import time
import threading 
import sys
import SocketServer

class serverThread(threading.Thread):
	def run(self):
		self.server.serve_forever()
	def stop(self):
		print "Stop Server Thread"
		self.server.shutdown()
	def set(self, status):
		self.server = SocketServer.ThreadingTCPServer(("", 61855), ChatRequestHandler) 
		#self.server.set(status)



class ChatRequestHandler(SocketServer.BaseRequestHandler):
	def set(self, status):
		self.status = status
		print "Status"
	def log(self, msg, ip):
		print "["+str(time.strftime("%d.%m.%Y %H:%M:%S")) +"]["+ip+"] "+str(msg)
	def handle(self):
		#Hier sind dinge
Zuletzt geändert von Anonymous am Montag 23. Juli 2012, 14:45, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
BlackJack

@dessp: Schau Dir mal `SocketServer.BaseRequestHandler` genauer an. Davon erbst Du ja.

Deine `set()`-Methoden sind merkwürdig. Da werden Attribute eingeführt, das sollte man ausserhalb von `__init__()` nur in seltenen, begründeten Ausnahmefällen machen.
Antworten