如何在Twisted Python中从服务器发送列表内容?

4 投票
2 回答
591 浏览
提问于 2025-04-17 07:23

我有一个和多客户端聊天服务器相关的问题。这个问题的列表是 ['talk', client_n, message]。我想知道怎么用 twisted python 里的 transport.write() 从服务器发送 'message' 给 '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'

有没有人能给我一个解决方案呢?

2 个回答

0

我不是专家,但也许你可以考虑通过 JSON 来对你的列表进行序列化和反序列化?

6

self.factory.clients是什么?它可能是一个字典吗?你真的想做这样的事情吗:

client = self.factory.clients.get(client_n)
if client:
    client.transport.write(message)

撰写回答