我的设置如下:
Python 2.6(嵌入在商业应用程序中)使用 subprocess 在(外部)python 2.7中启动外部脚本。
然后外部脚本使用套接字模块将python命令发送回嵌入式python
使用以下代码初始化套接字:
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
我使用以下命令发送命令:
self.sock.send("print ('hello, world!')")
此刻目前运作良好。我能够发送我想要的所有命令,并很好地控制程序。
我的问题:如何请求通过套接字发回信息?
例如,我需要让程序给我一个字符串列表。但我很难掌握嵌入式python如何通过我的开放套接字发回任何数据?
谢谢!
答案 0 :(得分:1)
您始终可以进行双向套接字通信。
当外部python发送内容时,总是发送一个元组,其中一个参数可以指定你要求的东西。
让我举个例子,
设置双向套接字通信(简单客户端 - 服务器模型 - 同步或异步取决于您的项目/应用程序所需的内容。)
2.7发送这样的元组 -
(<command>, 1)
1表示您希望输出的命令(您说的有效)将被发送回2.7。
因此,当2.6接收元组时,元组的第0个位置始终表示它尝试发送的命令,第1个位置表示发送返回参数。
使用简单的if-else条件,您可以检查它是否为1,然后将结果发送回2.7 - 否则不会。
相当简单的逻辑。