Python子进程Popen通过线程进行通信
使用子流程模块运行命令,并与方法通信以将stdin输入传递给命令。在独立运行时,而不是作为线程运行时,此功能可以正常工作:Python子进程Popen通过线程进行通信,python,subprocess,python-multithreading,Python,Subprocess,Python Multithreading,使用子流程模块运行命令,并与方法通信以将stdin输入传递给命令。在独立运行时,而不是作为线程运行时,此功能可以正常工作: cmd = ["/usr/bin/nc", "-w0", "-u", hostname, port] while count <= interval: j = 0 while j < burst: p1 = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subproces
cmd = ["/usr/bin/nc", "-w0", "-u", hostname, port]
while count <= interval:
j = 0
while j < burst:
p1 = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate(json.dumps(data))
time.sleep(0.01)
j = j + 1
count = count+1
time.sleep(1)
1.使用
线程
模块而不是线程
。2.您是否可以创建一个显示您的问题并发布其产生的完整回溯?您可以使用socket
模块,而不是运行nc
。将stderr=subprocess.PIPE添加到混合中。@J.F.Sebastian我尝试了线程化
。根据你的建议,我最终使用了socket
。thanks@tdelaney将stderr添加到Popen
不会改变行为。在通信调用中仍然收到相同的错误。
import thread
t = thread.start_new_thread( senddata, (mac, interval)