Kommunikation zwischen DOS-Programmen
-
Wie kann ich zwei reine DOS-Programme, die unter Windows parallel laufen, miteinander kommunizieren lassen ? Ich hatte versucht in einem Programm einen Speicherbereich zu allokieren und die Adresse über eine Datei an das andere Programm zu übergeben. Aber da Windows ja VirtualMemoryManagment betreibt, ist die Kommunikation über diese Adresse nicht möglich. Über Dateien gibt es auch Probleme, da die Datei nur von einem Programm geöffnet sein darf.
Was kennt ihr noch für Möglichkeiten ?
-
Hmm, wie wärs mit einem dritten Programm das im Hintergrund für die Speicherverwaltung zuständig ist? Jede Anfrage auf Speicher geht an dieses Programm, welches den Speicher zurückgibt und sich die genauen Adressen merkt welche dann wiederrum von einem anderen Programm abgerufen werden können?
MfG SideWinder
-
Machs halt einfach mit TCP/IP Sockets ...
- http://sourceforge.net/snippet/detail.php?type=snippet&id=100133 und
- http://sourceforge.net/snippet/detail.php?type=snippet&id=100134
-
@SideWinder: REINES DOS !!! Um ein drittes Programm im Hintergrund zu haben, das die Speicheranfragen abfängt, müßte ich doch gerade eben wissen, wie DOS-Programme kommunizieren.
@mady: Klingt schon eher interessant
-
Original erstellt von Steffen Vogel:
REINES DOS !!!Ne, du hast in deinem ersten Post definitiv "die unter Windows parallel laufen" gesagt!
Da haette ich gesagt: DLL (oder Read/Write Process Memory, oder simples SendMessage)
Aber unter DOS? Da ists ja kein Problem, denn AFAIK hat DOS keine Virtuellen Speicherraeume, du kannst direkt in den Speicher schreiben und lesen... Keine Probleme also
ueber TCP/IP zu kommunizieren halte ich fuer etwas ausgefallen
-
mein vorschlag wäre:
1. jedes programm bekommt ein verzeichniss
2. die 2 programme schreiben jeweils dateien in das verzeichniss des anderen und schreiben ihre daten da rein.
3. jedes programm sucht im eigenen verzeichniss nach dateien und versucht sie zu öffnen, so lange bis es klappt und löscht sie danach wieder.als vorschlag hätte ich, dass du einfach nur dateien anlegst und im namen die daten einpackst. so müßtest du nur dateien öffnen und sofort schliessen und sie wäre nicht als geschützt im verzeichniss... obwohl das ja wirklich komplex ist....
wäre es nicht besser windoes konsolenprogramme zu machen? die könnten z.B. mit einer dll, oder per tcp/ip oder mit pipes oder der zwischenablage oder... kommunizieren..
rapso->greets();