Lets say we have appA and appB. appB is running in the background, not doing anything. Then the user opens up appA. They punch in a number, and hit enter. Then appA "pokes" appB and sends it the number. appB multiplies the number by 5, pokes appA and sends it the new number. appA then outputs the number.

How do I "poke" another application?

Is there a way to make this OS independent? I want to be able to recompile this for windows. Would sockets work?

Possibly not. MS have been locking down sockets a lot lately due to it being abused by malware. XP Sp2 removed all support for raw sockets.

Not really

You cant address the memory directly , so you will have to use some platform-dependant API.

XP Sp2 removed all support for raw sockets.

I'm not exactly sure what raw sockets are, but surely sockets libraries like boost.asio still work?

Why would you need a raw socket, when a regular one would work just fine?

Just read "beej" and study the client/server example.