It depends on what exactly you want to achieve, what would be your application-layer protocol (
http://en.wikipedia.org/wiki/Application_layer[
^]), or requirements to such protocol stemmed from your application requirements. You always have such protocol, even if you don't realize it and don't consider it as such, don't use such name.
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