0

我的设置如下:

Python 2.6(嵌入在商业应用程序中)使用子进程在(外部)python 2.7 中启动外部脚本。
然后,外部脚本使用套接字模块将 python 命令发送回嵌入式 python。
使用以下代码初始化套接字:

self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  

我使用以下命令发送命令:

self.sock.send("print ('hello, world!')")

目前这工作得很好。我能够发送我想要的所有命令,并很好地控制程序。

我的问题:如何请求通过套接字发送回信息?
例如,我需要让程序给我一个字符串列表。但是我很难理解嵌入式 python 是如何通过我的开放套接字发回任何数据的?
谢谢!

4

1 回答 1

1

您始终可以进行双向套接字通信。

当外部 python 发送一些东西时,总是发送一个元组,其中一个参数可以指定你正在请求一些东西。

让我举个例子吧,

设置双向套接字通信(简单的客户端-服务器模型 - 同步或异步取决于您的项目/应用程序需要什么。)

2.7 发送一个这样的元组 -

(<command>, 1)

1 表示您想要您发送的命令的输出(您说它正在工作,将被发送回 2.7。

所以,当 2.6 收到元组时,元组的第 0 位总是代表它试图发送的命令,第 1 位代表回传参数。

使用简单的 if-else 条件,您可以检查它是否为 1,然后将结果发送回 2.7 - 否则不是。

相当简单的逻辑。

于 2012-06-21T06:58:47.100 回答