2010-11-04 156 views
2

我正在寻找一种抽象和干净的方式来交换两个python程序之间的字符串。该协议非常简单:客户端/服务器向服务器/客户端发送一个字符串,并且它会采取相应的操作 - 通过一个处理程序,我想 - 并且不用另一个字符串回复另一端。字符串可以是三件事:一个确认,表明另一方仍然存在;如果从“客户端”到“服务器”,包含命令的pickled类,或者如果从“服务器”到“客户端”,则包含响应;最后是一个“锁定”命令,它表示对方正在工作,在接收到另一个锁定分组之前不应再提出任何问题。简单的服务器/客户端字符串交换协议

我一直在寻找在SocketServer.TCPServer中内置的python,但它的方式太低级别,它不容易支持重新连接,客户端必须使用套接字接口,我更愿意被封装。
然后我研究了扭曲的框架,特别是LineOnlyReceiver协议和服务器示例,但是我发现最初的学习曲线过于陡峭,在线文档假设知识太少,缺乏实例和良好的文档(除了2005年O'reilly的书,这是否仍然有效?)。
然后,我尝试了pyliblo库,这是完美的任务,唉它是单向的,没有办法“回答”客户端,我需要答案与特定命令相关联。

所以我的问题是:是否有一个现有的框架/库/模块,允许我有一个客户端对象在服务器,读取命令和发送答复,并在客户端服务器对象,以读取并发送命令给我,我可以在一个简单的设置(客户端,服务器地址是主机:端口,服务器,你正在监听端口X)后使用底层套接字,重新连接引擎等处理?
在此先感谢任何答案(请原谅我的英语和缺乏经验,这是我的第一个问题)

回答

0

的Python还提供了一个asyncchat模块,简化了很多常见的聊天般的通信服务器/客户端的行为。

+0

是的!那就是!非常感谢! – uovobw 2010-11-05 15:42:58

0

你想做的事情看起来很像RPC,所以我想到的事情是XMLRPC或JSON RPC,如果你不想使用XML。

Python有一个XMLRPC库,您可以使用它,它使用HTTP作为传输,因此它也解决了您不太低级别的问题。然而,如果你能够提供更多的细节来确定你想做什么,或许我们可以提供更好的解决方案。

相关问题