简单的服务器/客户端字符串交换协

时间:2010-11-04 14:27:54

标签: python string networking protocols

我正在寻找一种在两个python程序之间交换字符串的抽象而干净的方法。协议非常简单:客户端/服务器将一个字符串发送到服务器/客户端,它采取相应的操作 - 通过处理程序,我想 - 并用另一个字符串回复OR NOT。字符串可以是三个东西:一个确认,一方发出信号,另一方面仍然存在;包含命令的腌制类,如果从“客户端”到“服务器”,或者是从“服务器”到“客户端”的响应;最后是一个“锁定”命令,它指示对方的另一方正在工作,并且在收到另一个锁定数据包之前不应再询问其他问题。

我一直在查看内置在SocketServer.TCPServer中的python,但它的级别太低,它不容易支持重新连接,客户端必须使用套接字接口,我更喜欢将其封装。
然后我探讨了扭曲的框架,特别是LineOnlyReceiver协议和服务器示例,但我发现初始学习曲线太陡,在线文档假设知识太多,缺乏示例和良好的文档(除了2005 O '赖利书,这还有效吗?) 然后我尝试了pyliblo库,这是完美的任务,唉它是单向的,没有办法“回答”客户端,我需要答案与特定命令相关联。

所以我的问题是:是否有一个现有的框架/库/模块允许我在服务器中拥有一个客户端对象,从中读取命令并发送回复,以及客户端中的服务器对象,以便读取回复和发送命令,我可以使用简单的设置(客户端,服务器地址是主机:端口,服务器,你正在侦听端口X)具有底层套接字,重新连接引擎等处理?<登记/> 提前感谢任何答案(原谅我的英语和经验不足,这是我的第一个问题)

2 个答案:

答案 0 :(得分:0)

Python还提供了一个asyncchat模块,可以简化聊天通信常见的大部分服务器/客户端行为。

答案 1 :(得分:0)

你想做什么似乎很像RPC,所以我想到的是XMLRPC或JSON RPC,如果你不想使用XML。

Python有一个可以使用的XMLRPC库,它使用HTTP作为传输,因此它也解决了你的级别不太低的问题。但是,如果您可以提供更多关于您确切想要做的细节,也许我们可以提供更好的解决方案。

相关问题