First off I know very little about networking but am using a free very nice game system that you might want to see how it is done since it works so well. http://rptools.net/
I play a weekly on line game using MAPTool (by RPTools) where one of us has to be the server, and all the others just log in to the name of the server. So that may mean someone has some kind of host set up? I am the server but see all the other people's servers for the game too.
Anyway the players just use my created server name and log in to my game with an optional password.
I also have a router and it was very easy to open the port for this program.
Here is a picture of the Start up Server
http://lmwcs.com/rptools/wiki/Image:mt-start-server.jpg
We get to see the results but unfortunately, not how it was implemented. Thanks for sharing though!
With regards to conditions and actions, the most basic form of data to transfer would be text (at least that's what comes to mind) I'm not sure about receiving though, would the game have to constantly check for incoming data? Let's get a list of conditions and actions going!