Kommunikation zweier Programme auf dem gleichen PC
Übersicht

![]() |
dimasterBetreff: Kommunikation zweier Programme auf dem gleichen PC |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey cool vielen dank es funktioniert | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was hat denn der GC mit Speicher zu tun, den man per MemAlloc holt und dann in beiden Programmen benutzt? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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* |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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... ![]() Da würde ich dann doch eher TCP/UDP empfehlen ![]() |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group