4

我有一个与多客户端聊天服务器问题相关的列表。这是列表 ['talk', client_n, message]。如何使用transport.write()在twisted python中将“消息”从服务器发送到“client_n”?

我以两种方式编写代码。但两者都不起作用。

第一种方式:

  data = data.strip()
  dat1 = data.split()
  dat2 = ' '.join(dat1)
  l = dat2[5:12]
  m = dat2[13:]
  l.transport.write(m)

第二种方式:

 data = data.strip()
 dat1 = data.split()
 l1 = dat1[1]
 m1 = dat1[2]
 if l1 in self.factory.clients:
    l1.transport.write(m1)

但在两者中我都有属性错误。

exceptions.AttributeError: 'str' object has no attribute 'transport'

请问有人可以给我一个解决方案吗?

4

2 回答 2

6

什么是 self.factory.clients?它可能是一本字典吗?你真的想做类似的事情:

client = self.factory.clients.get(client_n)
if client:
    client.transport.write(message)
于 2011-12-02T01:00:53.657 回答
0

我不是专家,但也许您应该考虑通过JSON序列化和反序列化您的列表?

于 2011-11-30T12:38:44.720 回答