Knowledge of networking (how a tcp socket works as a server and a client)
C#(or whatever programming language you're wishing to use) knowledge to implement said network
Knowledge of conquer protocols as:
-Cryptography (Passwords, Packets, and Spells) - (Packet encryption can vary for patches)
-Packet structures (Vary for patches)
Knowledge of how the networking and protocol are related (fucking common sense, you people hardly have it)
Programming knowledge to implement said protocols in the network and handle them appropriately. That's what a server does - handle data.(Ok to be blunt it handles data in this case, but you get the point)
Once you know those you can figure the rest out.(With or without help)