Kommunikation zweier Programme auf dem gleichen PC

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

dimaster

Betreff: Kommunikation zweier Programme auf dem gleichen PC

BeitragSa, Jul 14, 2007 13:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

Wie kann ich zwei laufende Programme miteinander Kommunizieren lassen? Muss ich das über lokale TCP-Kommunikation machen oder gibt es da einfachere Wege?

mit freundlichen Grüssen
Dimaster
 

Lumooja

BeitragSa, Jul 14, 2007 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst mit Int Ptr Variablen direkt Speicherstellen als Variablen zwischen der Kommunikation von zwei oder mehreren Programmen benutzen.
Ohne Windows APIs (=cross-platform!) könntest du am Anfang die zu benutzende Addresse in eine Datei schreiben, die dann vom 2. Programm ausgelesen wird.

dimaster

BeitragSa, Jul 14, 2007 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
hey cool vielen dank es funktioniert
 

Dreamora

BeitragSa, Jul 14, 2007 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Lumooja hat Folgendes geschrieben:
Du kannst mit Int Ptr Variablen direkt Speicherstellen als Variablen zwischen der Kommunikation von zwei oder mehreren Programmen benutzen.
Ohne Windows APIs (=cross-platform!) könntest du am Anfang die zu benutzende Addresse in eine Datei schreiben, die dann vom 2. Programm ausgelesen wird.


Du kannst aber auch direkt Runtime Error benutzen anstatt drauf zu warten bis du einen MAV bekommst weil der GC von beiden BM Programmen versucht drauf zuzugreifen!


Wenn du so etwas willst schau ins englische Forum in den FAQ bereich. Dort ist ein Tutorial wie man Sharedmemory mit BlitzMax nutzt.
Das ist der EINZIGE STABILE WEG wie 2 BM programme mit einander kommunizieren können, ohne einfach Pipe oder TCP / UDP Streams zu nutzen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

BtbN

BeitragSa, Jul 14, 2007 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Was hat denn der GC mit Speicher zu tun, den man per MemAlloc holt und dann in beiden Programmen benutzt?
 

Dreamora

BeitragSa, Jul 14, 2007 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit MemAlloc ist es kein Problem.
Dennoch keine saubere Art und weise, wenn eines der beiden Programme abstürzt ist der Speicher flöten und das zweite program MAVt

-> SharedMemory bleibt bestehen
-> Pipe crasht auch nicht
-> TCP / UDP ebenfalls nicht
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

BtbN

BeitragSa, Jul 14, 2007 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
SharedMem funktioniert auf jedem Os anders.
Gäbe auf Linux da auch noch d-bus, das extra zur kommunikation zwischen Prozessen gemacht ist. Ist aber genau so wenig portabel.

dimaster

BeitragSa, Jul 14, 2007 22:57
Antworten mit Zitat
Benutzer-Profile anzeigen
vielen dank für eure antworten...

beim mehrmaligem Testen des als erstes genannten verfahrens gab es schlussendlich praktisch immer ne mav...


ich habe das gefühl das ich das ganze am besten über tcp nutzen werde, da ich eine Verbindung für eine kleine Zeitspanne öffnen muss und nur dann. Diesen Zeitpunkt kann ich beiden Programmen auf meine Art und Weise mitteilen...

mfg dimaster
 

porcus

BeitragSo, Jul 15, 2007 14:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Das einfachste und unkomplizierteste ist wohl, dass
man einfach irgendein Kram in ne Datei schreibt und diese
dann vom anderen Programm auslesen lässt.
*Account deaktiviert*
 

#Reaper

Newsposter

BeitragSo, Jul 15, 2007 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
porcus hat Folgendes geschrieben:
Das einfachste und unkomplizierteste ist wohl, dass
man einfach irgendein Kram in ne Datei schreibt und diese
dann vom anderen Programm auslesen lässt.



Das ist aber auch die wohl absolut langsamste Methode... Laughing
Da würde ich dann doch eher TCP/UDP empfehlen Wink
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group