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