Datenverbindung zwischen zwei Applikationen

Alles rund um die Programmierung mit Qt
Antworten
archon
Beiträge: 117
Registriert: 22. August 2006 12:01

Datenverbindung zwischen zwei Applikationen

Beitrag von archon »

Hallo Leute,

eine Verständnisfrage: Ich möchte von einer Applikation eine andere Applikation starten. Mit QProcess z.B. kann man ja auch Parameter übergeben, damit kann die aufgerufene Applikation konfiguriert werden.

Nun möchte ich aber dann auch ständig Daten zwischen den Applikationen hin und her schicken (Befehle, Aknowledges).

Kann mir jemand sagen wie das funktioniert? Habe soetwas noch nie gemacht. Wie wichtig ist es hierbei das beide Applikationen in Qt geschrieben sind? Die aufrufende Applikation soll eine GUI haben die aufZUrufende Applikation nicht unbedingt.

Vielen Dank im Vorraus
Wer die Bibel liesst hört auf zu glauben
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Scahu dir mal IPC (Interprocess communication) an!
Da gibts mehrere TCP/IP, DBUS, Shared Memory um nur einige zu nennen.
archon
Beiträge: 117
Registriert: 22. August 2006 12:01

Beitrag von archon »

Danke für die schnelle Antwort

das werde ich tun, mir ist nach Deiner Antwort gerade eingefallen dass man ja auch eine Kommunikation mit einem TCP Socket aufbauen könnte, gut dann kann man halt die Software nicht von der anderen Starten aber zu mindest wäre die Kommunikation ziemlich einfach zu realisieren.

Gruss
Wer die Bibel liesst hört auf zu glauben
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Welche Art von IPC Du verwendest, sollte wiederum von der Art und weise, wie du daten uebertraegst, bestimmt werden.

wichtig ist z.b noch, ob die Prozesse verwand sind oder nicht -> verwande prozesse = du kannst unnamed IPC Objecte verwenden. (Bei dir klingts eher nach nichtverwanden prozessen.)

Iss wichtig, da z.b. unnamed pipes unter windows ned so unterstuetzt werden.

Commandos hin und her schicken klingt z.b. sehr nach pipe. Pipe und TCP/IP wiederum haben viel gemeinsam. Wenn du soweiso spaeter nen ausbau euber Netz planst, koenntest gleich TCP/IP nehmen und vorerst auf localhost festnageln. Unter linux z.b. kannst die socket schnittstelle so configurieren, das statt dem TCP/IP stack anziehst, gleich ne pipe hernimmst. funktioniert dann natuerlich nur auf localhost.

Unter linux iss auch noch sehr verbreitet, das man zur kommunication files heranzieht. prinzipiell geht dsas unter windows auch. Iss IMHO die aelteste und unmoderste version von IPC :-)

Willst du nen modernes, recht unkompliziertes system, schickst ned viel daten rueber (iss bissi unperformant) aber möglichst viele unterschiedliche clients anbinden, bzw anderen die möglichkeit geben, recht unkomplieziert clients zu entwickeln, bzw, clientfunktionalitaet in ihre application einzubetten, und bist eh unter linux (unter windows isses noch ned so verbreitet) dann schau dir unbedingt DBus an !

Ciao ...
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

gut dann kann man halt die Software nicht von der anderen Starten
klar kann man .... wenn der client versucht ne verbindung aufzubauen, und es fehlschlagt, kannst du doch drauf reagieren wie du wilst ^^ zum beispiel es in 10 sek wieder zu versuchen ^^

Gibt ne menge programme die sowas machen, besonders software die vom user versteckt nach hause funken ^^

Ciao ...
archon
Beiträge: 117
Registriert: 22. August 2006 12:01

Beitrag von archon »

Danke soweit, die zu aufzurufende Applikation ist definitiv unter Windows die Aufrufende App (weis ich noch nicht sicher) könnte aber durchaus sein das diese unter Linux entwickelt worden ist (muss ich noch klären).
Auch könnte ich mir vorstellen das die zwei Apps im netz betrieben werden sollen (macht Sinn). Insgesamt sind es ja nur kleine Applikationen und die Kommunikation muss nich so arg performant sein, deswegen spieläugel ich momentan schon sehr mit einer tcp/ip kommunikation.

Gruss
Wer die Bibel liesst hört auf zu glauben
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Oder soap....

SHMem fällt wie auch der DBUS raus wenns via Network gehen soll
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Beitrag von nando »

wie waere es mit CORBA?
ist aber bestimmt overkill...
Antworten