1
我想創建一個與Python的小型IRC連接,現在我希望它能夠連接到多個服務器,所以我創建了一個將連接到服務器的服務器類,我想保存服務器到一個數據庫,所以我用sqlalchemy來做到這一點。這是在服務器類SQLAlchemy和線程
def __init__(self, server_name, server_address, server_port=6667):
threading.Thread.__init__(self)
self.server_name = server_name
self.server_address = server_address
self.server_port = server_port
的初始化現在奇怪的是,它的實際工作,如果我把創建一個類「手動」像這樣
bla = IRCLib.connect("local","127.0.0.1")
這種方式連接,並有是一點問題都沒有,但是當我通過SQLAlchemy的加載類這樣
bla = db.BaseService.session.query(IRCLib.server)
res = bla.all()
res[0].connect()
我得到這個錯誤
raise RuntimeError("thread.__init__() not called")
現在在類的連接和運行功能,此
def connect(self):
self.irc = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
self.irc.connect ((self.server_address, self.server_port))
self.irc_file = self.irc.makefile("rb")
self.start()
def run(self):
print "in run"
self.irc.send ('NICK Test\r\n')
self.irc.send ('USER lsb lsb lsb :lsb\r\n')
while True:
data = self.irc_file.readline()
print data
我真的不知道我可以做的就是它與SQLAlchemy的工作,因爲就像我說的,它的工作原理,如果我手動做。
由於
感謝像魅力一樣工作 – merlin371 2012-08-11 21:39:14