c ++ - Hvad er den bedste IPC-metode til intra-machine proceskommunikation i Win32?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skal implementere interprocess kommunikationssystem for processer (i hele maskinen) i Win32 ved hjælp af native C ++ (.NET er ikke relevant). For mere detaljer, overvejer jeg meddelelsesdirigeringssystem mellem processerne ved hjælp af binære formaterede meddelelser. Besked afsendelse/modtagelse skal være asynkron.


TCP-stikket kunne være et af udvælgelsen. Men jeg vil bare vide, om der kunne være bedre valg til høj ydeevne. (Jeg kan ignorere sikkerhedsproblemer.)


Jeg anmoder ikke om detaljeret kode, men kun dine indsigter.

Bedste reference


Hvis du har tid til at spare, og hvis du kan lide risiko og eksperimenter, kan du bruge den ukodede Windows-funktion: Local Procedure Call. Det har været der for evigt, og det er nok den hurtigste, fordi det er grundlaget for alle andre. [1]

Andre referencer 1


Du skal også kigge på navngivne rør: http://msdn.microsoft.com/en-us/library/aa365590\%28v=vs.85\%29.aspx. Jeg kender også MemoryMappedFiles til IPC: http://msdn.microsoft.com/en-us/library/ms810613.aspx, men jeg prøvede aldrig personligt. Jeg brugte både NamedPipes og Socket på en enkelt maskinens IPC-strategi, men jeg må helt ærligt måle præstationsforskellen mellem de to fremgangsmåder, eller i det mindste bemærkede jeg ikke så stor forskel at sige 'undgå dette ...' eller 'foretrække denne anden ... '. Måske starter du med den teknologi, du er mere sikker på, vil du give dig et godt arbejdsresultat og mere fritid;) [2] [3]

Andre referencer 2


Jeg er en fan af hukommelseskortede filer.
Indpakket med læser/forfatterlås for at give adgangsbegrænsninger.