使用ZMQ和Python发送命令行参数

时间:2017-06-03 23:36:01

标签: python-3.x zeromq

我是Python,ZMQ,网络甚至编码的初学者,所以请原谅我的错误。

我正在尝试发送说明从我的桌面打开notepad.exe到我的笔记本电脑:

主服务器

import zmq
import subprocess

try:
    raw_input

except NameError:
    raw_input = input #for python 3


#This will handle all the sockets we will open on the mainServer
context = zmq.Context()


#Socket 1 - Using for instructions
instructions = context.socket(zmq.PUSH)
instructions.bind("tcp://*:5555")


#Socket 2 - Using for end of finished instructions
#doneWork = context.socket(zmq.PULL)
#instructions.bind("tcp://*:5556")



#Now we will press enter when the workers are ready

print("Press Enter when you want to send the instructions. Make sure test devices are ready")
_=raw_input()

print ("Sending tasks to test device. . .")



instruction_One= "subprocess.call(['C:\notepad.exe'])"

instructions.send_string('%s' %instruction_One)

客户端

import zmq
import sys

context = zmq.Context()

instructions = context.socket(zmq.PULL)
instructions.connect("tcp://192.168.0.12:5555")


while True:
  instruction_One=instructions.recv()
  string_of_instruction = instruction_One.decode("utf-8")
  sys.std.out.write(string_of_instruction)
  sys.std.out.flush()

我正在通过套接字编码为二进制的字符串发送指令。但是在客户端(笔记本电脑),无论我提取什么都无法通过命令行执行。我犯的愚蠢错误是什么?

1 个答案:

答案 0 :(得分:1)

我发现了修复。

而不是sys,我使用了subprocess

subprocess(command, shell=True)

由于