pipes

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Montag 27. Oktober 2003, 15:59

Hallo,

ich habe eine Frage zu den Pipes unter Windows.
Hat jemand ein Beispiel, daß win32pipe Funktionen aus der Pythonwindowserweiterung "Pythonwin" benutzt.
Ich möchte Daten zwischen Programmen (Python-Nichtpython)
austauschen.

Danke schon mal im Voraus.
alpha
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Montag 27. Oktober 2003, 17:27

In welcher Art und Weise willst du denn Daten austauschen? Vielleicht tuts ein einfaches os.popen3 ja auch :?: Mit all den windows Extensions hab ich nämlich noch nicht beschäftigt...
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Dienstag 28. Oktober 2003, 08:34

Hallo milan,

das C++ Programm soll Daten auf möglichst einfache Weise an das
Pythonscript schicken. Das soll dann darauf reagieren und andere
Werte wieder zurückschicken. Gibts da noch ne einfache andere
Möglichkeit?

alpha
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Mittwoch 29. Oktober 2003, 17:53

Und welches Programm ist das Mainprogramm, also das, welches das andere aufruft? Oder sollen beide die ganze Zeit paralell laufen?

Ich schätze mal, dass C++ Programm ruft das Pythonscript auf. Dann würde ich von C++ aus pipes an die Standartein- und ausgabe von Python setzten, sodass du mit sys.stdin.read Daten empfangen (wie aus einer Datei) und mit print oder sys.stdout.write zurückschicken.

Ist das ganze umgekehrt, also ruft Python C++ auf, dann machst du das ganze mit

Code: Alles auswählen

import os
out, in, error=os.popen3('c++programm mit parametern')
starten. Dann kannst du über out.read lesen und in.write schreiben. In C++ musst du dann über die Standarteingabe lesen und und ganz normal Daten ausgeben. (Also genau umgekehrt)
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Mittwoch 29. Oktober 2003, 18:03

Es gibt v.a. auch win32com. Das würde ich mir mal anschauen, wenn man Zugriff auf das Src-C++ Programm hat.
Sonst kommts halt auf das Programm drauf an.
Mit den os.popenXX kann man relativ einfach Stdin/out/err behandeln --- ist aber nicht gerade elegant ...
vgl. XCOM, Corba, ...

cu beyond
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Donnerstag 30. Oktober 2003, 11:48

Danke für die Tipps. Mit den Pipes will es nicht so recht klappen.
Ich bekomme immer nur die erste Nachricht. Ich habe ein Beispiel
aus der win32pipe genommen. Da wird ein ein Dienst gestartet und dort funktioniert es auch, aber ich möchte keinen Dienst daraus machen.
Naja mal sehen. Ich werde noch etwas herumexperimentieren.

alpha
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Donnerstag 30. Oktober 2003, 11:50

Hallo milan,

die beiden Programme sollen die ganze Zeit parallel laufen.

alpha
Antworten