Moin moin,
ich programmiere hauptsächlich mit wxWidgets und will mich nun endlich mal an Prozesse wagen. Nur frage ich mich, wie ich die Kommunikation umsetzen soll? Ich muss ja sozusagen eine Server-Client Beziehung programmieren, doch was soll ich dafür benutzen? Und wie sieht es aus, wenn ich zwei Anwendungen über ein Netzwerk kommunizieren lasse? Und vor allem ist es mir wichtig, dass dies auch schnell geschieht, da der Umfang an gesendeten Daten wohl auch ziemlich hoch sein wird.
Was ich will:
1) wxWidgets verwenden
2) schnelle Methode für die KOmmunikation
3) sollte im Netzwerk funktionieren
4) auch Anwendungen, die nicht wxWidgets verwenden sollen mit der Anwendung kommunizieren können
Sind das wirklich getrennte Prozesse? Wenn ja, dann hast Du die Interprocess Communications (für Windows http://msdn.microsoft.com/en-us/library ... S.85).aspx) zur Auswahl. Ich würde davon die Pipes oder Sockets empfehlen, letzteres geht dann auch stressfrei in einem lokalen Netzwerk.
Wenn es aber nur um die Parallelisierung von Aufgaben geht, sind Processe kontraproduktiv. Mehrere Threads innerhalb eines Prozesses sind dann eher zu empfehlen. Und dafür nimmt man dann Atomare Operationen, Lock-free Queues oder Mutexe und Barrieren.
Ja, es sind wirklich Prozesse. Die rechenintensiven Sachen teile ich auf Threads auf.
Aber nun ist noch die Frage offen, ob ich die wxSockets auch mit denen von NET verbinden kann. Wäre nämlich echt klasse, wenn meine NET-Anwendungen mit meinen wxWidgets-Anwendungen kommunizieren könnten.
http://msdn.microsoft.com/en-us/library ... S.85).aspx
Da findest Du die verschiedenen Möglichkeiten die unter Windows gehen, in wie weit die auch gekapselt unter wxWWidgets zur Verfügung stehen weiss ich nicht.
Sockets und Clipboard wohl auf jeden Fall.
Mailslots sind übrigens schlecht, da Daten verloren gehen können.