gpt4 book ai didi

python - 在 Twisted 中,我如何制作一个根据输入返回 Lines 或 Raw 的混合协议(protocol)?

转载 作者:太空宇宙 更新时间:2023-11-03 19:25:30 24 4
gpt4 key购买 nike

我正在尝试开发一种混合协议(protocol),它可以根据请求返回原始响应或基于行的响应。我的代码看起来像

class Receiver(LineReceiver):
def lineReceived(self, line):
(command, args) = self._parse_command(line)
result = self.exec_command(command, args) #Secret sauce returns list or blob.
if isinstance(result, basestring): # won't work in 3.0 ; least of my worries.
self.sendLine(str(len(result))) # Sends no. of bytes as a line.
self.transport.write(result) #followed by bytes. This is not received by the client.
self.transport.loseConnection()
else:
no_lines = len(result)
self.sendLine(str(no_lines))
for r in result:
self.sendLine(str(r))

在上面的代码中,transport.write(...) 不会向客户端发送任何数据。我该如何解决这个问题。

最佳答案

transport.write 调用会将数据发送到客户端。如果客户端写得不好,可能会因为数据发送后连接立即关闭而丢失。客户端也有许多其他可能的失败方式,但无法知道实际发生了什么,因为客户端代码不是问题的一部分。

关于python - 在 Twisted 中,我如何制作一个根据输入返回 Lines 或 Raw 的混合协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8298177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com