The workings of a server are not as simple as they sound, A client is merely a shell, and the server is the whole core of the game/program.
The server will have to do and check every action you want the client to handle, and it takes alot of work to make an efficient server.
I useually make servers by doing a few steps:
1)Set up client TCP code
2)Set up Server TCP code
3)Tweak untill they connect
4)Send simple data from client to server, and vice versa
5)Make a message function/sub/whatever, which will handle all your messages
6)Make messages parsable
7)Add some logic to it
8)well, the list goes on.
It can be done by a single men, but its alot of work.
SOTA Engine
Purchase
Source and Non Source versions available!