我现在正在实施一个扭曲的客户端和扭曲的服务器。 问题是服务器如何检测客户端发送的消息是否已完成?
例如,有2个客户端向服务器发送消息,该消息是一个python列表,它只有几个元素。第二个客户端在第一个客户端执行后很短的时间内发送消息。
由于它是异步的,服务器将切换为第二个客户端服务,留下第一个客户端的消息半处理。那么我该如何让服务器知道这条消息不完整呢?提前致谢。
答案 0 :(得分:1)
您希望实现某种协议(不要与twisted.internet.protocol
混淆),它具有某种分隔符,表示邮件的开头和结尾以及邮件的长度是。例如,让我们定义一个实现以下规则的协议:
{
int
个字节数,后跟:
}
示例预期消息如下所示:
{10:Hey Earth!}
Twisted提供了许多接口来为您完成此操作,因此您不必自己完成此操作。有LineReceiver
组合字节直到换行符。有AMP protocol和NetStrings
,这与我之前提供的示例相似。
netstring
您应该找到一个如何为自己编写一个很好的例子。