Consolen Anwendung per HTTP zur Verfügung stellen
Verfasst: Sonntag 12. Februar 2017, 07:28
Hallo,
ich habe eine c++ Consolen Anwendung welche ich mit Hilfe von Pexpect starte und steuere.
Eine Anfrage benötigt immer eine file und eine node.
Eine Anfragen soll jetzt aber per http request gestellt werden können und das Ergebnis als http response zurück gesendet werden.
Wie setze ich das um? Meine Recherche hat folgendes ergeben:
Ich benötige einen HTTP Server:
Mit SimpleHTTPServer habe ich bereits einen einfachen request/response durchgeführt. Allerdings habe ich gelesen, dass man SimpleHTTPServer nur für Testzwecke verwenden soll. Welchen http Server soll ich verwenden?
Wie verbinde ich den HTTP Server mit pexpect?
Ich habe an folgendes gedacht:
- Ich starte im mainthread den HTTP Server
- in einem anderen thread starte ich via pexpect meine c++ Consolen Anwendung (die soll endlos laufen)
- wenn ein request rein kommt, löst dieser ein Event aus, welches die Anfrage Funktion (mit den passenden Variablen aus dem http request) ausführt
- das Ergebnis wird dann wieder an den mainthread übergeben und per http response zurück gesendet
Mir geht es jetzt noch nicht wirklich um den konkreten Code, sondern um eine klare Projektstruktur. Wie ist der grundsäztliche Aufbau?
ich habe eine c++ Consolen Anwendung welche ich mit Hilfe von Pexpect starte und steuere.
Eine Anfrage benötigt immer eine file und eine node.
Code: Alles auswählen
import pexpect
def Anfrage(child, file, node):
child.sendline('load_solution ' + tree + '.sol')
child.expect_exact('solution loaded')
child.sendline('show_node ' + node)
child.expect_exact('show_node ' + node)
child.expect_exact('finished')
print('result: ' + child.before)
child = pexpect.spawnu('./programm')
child.delaybeforesend = 0
Anfrage(child, 'solution1', '12345')
Wie setze ich das um? Meine Recherche hat folgendes ergeben:
Ich benötige einen HTTP Server:
Mit SimpleHTTPServer habe ich bereits einen einfachen request/response durchgeführt. Allerdings habe ich gelesen, dass man SimpleHTTPServer nur für Testzwecke verwenden soll. Welchen http Server soll ich verwenden?
Wie verbinde ich den HTTP Server mit pexpect?
Ich habe an folgendes gedacht:
- Ich starte im mainthread den HTTP Server
- in einem anderen thread starte ich via pexpect meine c++ Consolen Anwendung (die soll endlos laufen)
- wenn ein request rein kommt, löst dieser ein Event aus, welches die Anfrage Funktion (mit den passenden Variablen aus dem http request) ausführt
- das Ergebnis wird dann wieder an den mainthread übergeben und per http response zurück gesendet
Mir geht es jetzt noch nicht wirklich um den konkreten Code, sondern um eine klare Projektstruktur. Wie ist der grundsäztliche Aufbau?