Avatar billede ttn.bonk Nybegynder
22. marts 2006 - 16:28 Der er 6 kommentarer og
1 løsning

Tovejs mellem-process kommunikation - hvad er bedst?

Hej,

jeg er interesseret i at have en server process kørende som så stiller et interface til rådighed for en række klient processer.
Både server og klienter vil altid køre på samme maskine.

Umiddelbart kan man ofte i f.eks. Windows bare lave en DLL som de enkelte klienter så linker til. Det gør det nemt at kode klienten i C++ når man har C++ header fil med APIet og DLLen, dejligt.

Men jeg har det problem at serveren skal bruge nogle data på tværs af klienterne (det kunne laves som et "shared memory segment" men det er jeg ikke glad for pga. fremtidige udvidelser af APIet og hvad det kan afstedkomme i fælles data området). Men måske er der ikke noget galt i det?

Derudover ønsker jeg faktisk også at serveren kan lave en form for callback ind i den enkelte klient, således at klienten (eller flere af dem) får information om hændelser fra serveren.

Jeg ser flere muligheder:
1) Lave en DLL med et fælles data segment, hm!.
2) Bruge COM som interface til serveren, men så skal klienterne jo også virke som COM server for at få information fra serveren om hændelser via en form for callback. HM igen!.
3) Bruge Windows hændelser som f.eks. i Skype APIet (som jeg lige nu kigger på i en anden sammenhæng).
4) Bruge .NET (og hvad skal bruges i .NET?).
5) Andet?

Umiddelbart skal det køre på Windows 200 eller nyere. Men det må gerne være nemt at flytte til Linux eller MAC.

Spørgsmålet er så om I her har nogle metoder at løse problemet på gerne lidt argument herfor.

Håber også det er forståeligt hvad jeg ønsker.

Mvh Torben.
Avatar billede bertelbrander Novice
23. marts 2006 - 23:15 #1
Hvis det skal være portabelt: socket, sandsynligvis UDP.
Avatar billede ttn.bonk Nybegynder
09. april 2006 - 20:45 #2
Hej bertelbrander,

jeg ville godt have haft nogle flere kommenterer fra andre, som f.eks. kendte .NET,
især for at få lidt info om det.

Men nu synes jeg at der er gået for lang tid, og dit svar er jo forsåvidt helt
korrekt (og egentlig ikke så svært at implementere.

Læg et svar bertelbrander og du får points :-).

Mvh Torben.
Avatar billede bertelbrander Novice
09. april 2006 - 23:00 #3
Jeg samler ikke på point.
Avatar billede arne_v Ekspert
10. april 2006 - 00:46 #4
.NET er ikke så forskelligt fra alt muligt andet

sockets bruges også i .NET omend de er 5 gange nemmere at bruge end i rå winsock API

derudover tilbyder .NET remoting som ved at indpakke ned og udpakning af data
der sendes over socket giver at call lignende API for remote calls
Avatar billede arne_v Ekspert
22. april 2006 - 21:39 #5
tid at få afsluttet her ?
Avatar billede ttn.bonk Nybegynder
23. april 2006 - 11:47 #6
Hej Arne,

ja det er vist på tide at lukke. Og .NET remoting bliver nok valget.
Så hvis du lægger et svar får du points.

Mvh Torben.
Avatar billede arne_v Ekspert
23. april 2006 - 15:07 #7
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester