Python启动可执行文件然后TCP连接到进程

时间:2017-09-12 21:21:39

标签: python tcp socks

我正在编写一个编程挑战,我需要做的是让python启动该程序,然后尝试连接到一个开放的sock端口,将数据发送到我刚刚启动的程序。

启动时遇到的程序在端口2222上打开一个监听器,当你发送一个字符串时,它将处理它并给出响应并退出。我的目的是自动发送数据,直到找到要发送的正确数据类型以获得我期望的结果。

import socket
import os

msg = 0x09
os.system(r"C:/Users/user/Desktop/myfile.exe")

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
TCP_IP = '127.0.0.1'
TCP_PORT = 2222
sock.connect((TCP_IP, TCP_PORT))
sock.send(str(msg))
result = sock.recv(1024)
sock.close
print result

脚本将启动exe但不会连接。如果我手动打开文件然后运行脚本它成功通信,所以我认为这是一个时间问题。我使用了长达20秒的睡眠延迟,脚本仍然挂起。我不确定如何才能使这项工作成功。

1 个答案:

答案 0 :(得分:1)

这是因为os.system等待程序完成以便返回退出值,请参阅here

用于执行独立线程使用subprocess