|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
[C/C++] Inviare un messaggio ad un altro processo
considerando che non ho esperienza in merito all'invio di messaggi tra processi vi chiedo lumi.
Volendo inviare dati da un processo chiamato MOTORE ad un processo chiamato SERVITORE in modo abbastanza efficace cioè veloce si usa PostMessage() e GetMessage() oppure altri tipi di funzioni? grazie 1000 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2011
Messaggi: 381
|
Ammesso che stiamo parlando di processi e non di thread (che implicherebbe soluzioni più semplici) generalmente ci sono 3 soluzioni per il modello a scambio di messaggi:
comunicazione sincrona comunicazione asincrona rendez-vous Inoltre bisogna definire la tipologia dei canali che possono essere unidirezionali o bidirezionali.
__________________
Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
sono processi, sto usando un programma che acquisisce byte da un apparato e se trova dei bit cambiati li invia ad un altro processo come messaggio. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2011
Messaggi: 381
|
Ok, allora le tecniche di programmazione sono quelle che ti ho elencato. Sono stati scritti decine di libri sulle cose che ti ho detto. Il mio consiglio è quello di cercare qualcosa a riguardo poiché l'argomento è vastissimo.
__________________
Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
ok, mi arrangerò da solo, grazie
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Alcune soluzioni più o meno in ordine di complessità architetturale:
shared memory File pipe socket RPC webservice Message Queue ESB |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2011
Messaggi: 381
|
shared memory no. Sono processi non thread.
__________________
Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Che vuol dire ? C'e' modo di usare shared memory anche tra processi (tipicamente mappando in memoria dei file)
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Magari funziona lo stesso, ma concettualmente forse e' piu' vicino a quello che ti serve una named pipe http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx anche se francamente a vedere la quantita' di codice necessaria per il produttore e il consumatore (http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx e http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx) viene un po' di paura... In ogni caso qua hai una panoramica delle alternative: http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
l'importante è trovare un sistema non troppo complesso e performante |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
ho optato per le socket ma non so quanto si paga in performance rispetto ai vari modi di inter process communication descritti qui http://msdn.microsoft.com/en-us/libr...ng_com_for_ipc
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:11.




















