扭曲的服务器如何检测到不完整的消

时间:2016-09-13 15:53:07

标签: python twisted

我现在正在实施一个扭曲的客户端和扭曲的服务器。 问题是服务器如何检测客户端发送的消息是否已完成?

例如,有2个客户端向服务器发送消息,该消息是一个python列表,它只有几个元素。第二个客户端在第一个客户端执行后很短的时间内发送消息。

由于它是异步的,服务器将切换为第二个客户端服务,留下第一个客户端的消息半处理。那么我该如何让服务器知道这条消息不完整呢?提前致谢。

1 个答案:

答案 0 :(得分:1)

您希望实现某种协议(不要与twisted.internet.protocol混淆),它具有某种分隔符,表示邮件的开头和结尾以及邮件的长度是。例如,让我们定义一个实现以下规则的协议:

  1. 所有讯息均以{
  2. 开头
  3. 包含邮件正文的int个字节数,后跟:
  4. 邮件正文
  5. 结束标记}
  6. 示例预期消息如下所示:

    {10:Hey Earth!}
    

    Twisted提供了许多接口来为您完成此操作,因此您不必自己完成此操作。有LineReceiver组合字节直到换行符。有AMP protocolNetStrings,这与我之前提供的示例相似。

    参考文献: