【发布时间】:2010-01-11 13:37:34
【问题描述】:
我已经构建了一个 Python 服务器,各种客户端可以连接到该服务器,并且我需要设置从客户端到服务器的一系列预定义消息 - 例如,客户端在第一次连接时将名称传递给服务器。
我想知道解决这个问题的最佳方法是什么?我应该如何为他们的通信建立一个简单的协议?
消息是否应该以一组特定的字节开始以将它们标记为该协议的一部分,然后包含某种消息 ID?任何建议或进一步阅读表示赞赏。
【问题讨论】:
我已经构建了一个 Python 服务器,各种客户端可以连接到该服务器,并且我需要设置从客户端到服务器的一系列预定义消息 - 例如,客户端在第一次连接时将名称传递给服务器。
我想知道解决这个问题的最佳方法是什么?我应该如何为他们的通信建立一个简单的协议?
消息是否应该以一组特定的字节开始以将它们标记为该协议的一部分,然后包含某种消息 ID?任何建议或进一步阅读表示赞赏。
【问题讨论】:
【讨论】:
根据要求,您可能需要考虑使用 JSON:使用带有 JSON 编码的“换行符”终止的字符串。传输协议可以是 HTTP:这样,您就可以访问所有“与连接相关的”设施(例如状态代码)并拥有 JSON 编码的有效负载。
使用 JSON 优于 HTTP 的优势:
当然,还有很多其他方法可以给这只猫剥皮,但是使用这种方法制作原型的时间非常短。如果可以满足您的要求(这里不是很详细),这是值得考虑的。
【讨论】:
阅读一些协议,并尝试找到一个看起来像您需要的协议。它需要面向消息还是面向流?它是否需要保留请求顺序,是否需要将请求与响应配对?您需要消息标识符吗?重试,后退?是RPC协议还是消息队列协议?
【讨论】:
请参阅http://www.faqs.org/docs/artu/ch05s02.html 和http://www.faqs.org/docs/artu/ch05s03.html,了解有关数据文件格式和协议的良好概述和讨论。
【讨论】: