Persoonlijk heb ik het probleem dat is DOS (voor de eenvoudige interface) en Windows pr0gjes met elkaar te laten communiceren, en daar heb ik een (eigenlijk veel breder inzetbare) oplossing voor bedacht. Een (shared) RAM disk/FS zou het beste zijn, omdat je anders afhankelijk bent van de I/O capaciteit en load
van je HD.
Kort gezegd: 2 bisynchrone monodirectionele kanalen die samen 1 asynchroon bidirectioneel kanaal vormen.
Het 1 en ander communiceert met elkaar via een constructie van bestanden.
Dat wil zeggen:
2 kanalen: 1 upstream
1 downstream
De kanalen hebben 1 richting om de eigenlijke data over de sturen (monodirectioneel), maar synchroniseren de pakketjes wel (acknowledge bij ontvangst pakket), dus bisynchroon (zowel het datakanaal als het acknowledgekanaal lopen volgens een vastgesteld patroon).
De 2 kanalen werken niet gelijk met elkaar (asynchroon) maar het samen wel 2 richtingen (bidirectioneel).
En in de praktijk:
Ik beschrijf maar 1 kanaal, omdat de ander toch hetzelfde werkt (maar dan natuurlijk de andere kant op).
1. Ontvanger heeft loop waarin wordt gecheckt op een UNlockfile (een soort lockfile die aangeeft dat er data ontvangen kan worden).
2a. Zender stopt data in packetfile (een soort network packet als een file).
2b. Zender maakt unlockfile aan.
3c. Zender wacht in loop op acknowledgeunlockfile.
4a. Ontvanger detecteert unlockfile.
4b. Ontvanger leest packetfile.
4c. Ontvanger maakt acknowledgepacketfile aan, die eventueel korte boodschap terug bevat.
4d. Ontvanger maakt acknowledgeunlockfile aan.
5a. Zender detecteert acknowledgeunlockfile.
5b. Zender leest acknowledgepacketfile.
5c. Zender verwijdert unlockfile, packetfile, acknowledgepacketfile, acknowledgeunlockfile.
6. Ontvanger klaar voor volgende packet.
(evt. wachttijd tot gereedheid volgende packet)
7. De sequntie begint opnieuw.
Dit kan natuurlijk ook tussen andere OS'sen/architecturen/etc. toegepast worden, of als remote shell over een netwerk ofzow.
Wat vinden jullie ervan?
van je HD.
Kort gezegd: 2 bisynchrone monodirectionele kanalen die samen 1 asynchroon bidirectioneel kanaal vormen.
Het 1 en ander communiceert met elkaar via een constructie van bestanden.
Dat wil zeggen:
2 kanalen: 1 upstream
1 downstream
De kanalen hebben 1 richting om de eigenlijke data over de sturen (monodirectioneel), maar synchroniseren de pakketjes wel (acknowledge bij ontvangst pakket), dus bisynchroon (zowel het datakanaal als het acknowledgekanaal lopen volgens een vastgesteld patroon).
De 2 kanalen werken niet gelijk met elkaar (asynchroon) maar het samen wel 2 richtingen (bidirectioneel).
En in de praktijk:
Ik beschrijf maar 1 kanaal, omdat de ander toch hetzelfde werkt (maar dan natuurlijk de andere kant op).
1. Ontvanger heeft loop waarin wordt gecheckt op een UNlockfile (een soort lockfile die aangeeft dat er data ontvangen kan worden).
2a. Zender stopt data in packetfile (een soort network packet als een file).
2b. Zender maakt unlockfile aan.
3c. Zender wacht in loop op acknowledgeunlockfile.
4a. Ontvanger detecteert unlockfile.
4b. Ontvanger leest packetfile.
4c. Ontvanger maakt acknowledgepacketfile aan, die eventueel korte boodschap terug bevat.
4d. Ontvanger maakt acknowledgeunlockfile aan.
5a. Zender detecteert acknowledgeunlockfile.
5b. Zender leest acknowledgepacketfile.
5c. Zender verwijdert unlockfile, packetfile, acknowledgepacketfile, acknowledgeunlockfile.
6. Ontvanger klaar voor volgende packet.
(evt. wachttijd tot gereedheid volgende packet)
7. De sequntie begint opnieuw.
Dit kan natuurlijk ook tussen andere OS'sen/architecturen/etc. toegepast worden, of als remote shell over een netwerk ofzow.
Wat vinden jullie ervan?