我是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()
我正在通过套接字编码为二进制的字符串发送指令。但是在客户端(笔记本电脑),无论我提取什么都无法通过命令行执行。我犯的愚蠢错误是什么?
答案 0 :(得分:1)
我发现了修复。
而不是sys
,我使用了subprocess
。
subprocess(command, shell=True)
由于