我正在尝试设置一个简单的客户端到服务器接口,用于调用服务器上的函数/程序。客户端将向服务器发送一个简单的命令以侦听此类命令。一旦服务器接收到来自客户端的命令,它将在服务器上执行以下功能或程序。我研究了一个接收文本字符串并解析该字符串然后执行函数或外部程序的简单 TCP 服务器。我也读过使用扭曲服务器实现的 XML-RPC。
我要问的是哪个最容易设置,或者有没有其他方法可以轻松完成这项任务?
谢谢。
有一个很好的 twisted 教程,它可以作为教学工具(并指导您编写基本的服务器/客户端服务)。试一试http://twistedmatrix.com/documents/current/core/howto/tutorial/你可能想要做的是解析收到的信息并采取相应的行动。
如果它适用于您的情况,也许您可以使用全功能系统进行异步/远程作业执行,如Celery?
实现您的要求的方法不止一种,各有优缺点:
使用标准 python 套接字库和客户端服务器架构
使用 Python 库,如 Telnet/ssh 或 Subprocess。
按照此处所述发送 XMP RPC 请求http://docs.python.org/2/library/xmlrpclib.html
在我看来,实现远程方法触发的最简单方法是通过 Python 子进程模块。我通常出于一般目的使用以下语法。
import subprocess
ret = subprocess.call(["ssh", "user@host", "program"]);
# or, with stderr:
prog = subprocess.Popen(["ssh", "user@host", "program"], stderr=subprocess.PIPE)
errdata = prog.communicate()[1]
希望能帮助到你