If you base your communications on TCP/IP (which is a right idea, everything else would hardly be reliable enough), everything requires "a server which is online". There is no such thing as miracle. You may ask "but how about P2P?". Paradoxically, same thing. Peer-top-peer applications simply all play the role of server part (listen to connections) and the client (try to connect to other applications) at the same time.
The following activity depends on what you want to achieve, exactly. It can be done on one of several different levels of networking, remoting or WCF.
Please see my overview of these approaches in my past solutions:
how i can send byte[] to other pc[
^],
Communication b/w two Windows applications on LAN.[
^].
—SA