2
私はプログラミング上の課題に取り組んでいます。プログラムを起動して開いたソケットポートに接続しようとしました。Pythonの実行可能ファイルを実行してからTCPをプロセスに接続します
問題のプログラムは、ポート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秒までの睡眠の遅れを使いましたが、スクリプトはまだハングアップしています。私はこの仕事をするためにどのように進歩する必要があるのか不明です。
独立スレッド利用を実行するためhere
参照あります.Popen( "C:/Users/user/Desktop/myfile.exe"、stdout = subprocess.PIPE) 'これは私が期待した通りに動作しました – nilats
@nilatsあなたはドキュメントを参照して、作成フラグとstdin/stdout chaneling – Abra001
サブプロセスでは、外部の手段なしにtogatherと通信するスレッドを生成することができます。 – Abra001