Socket programming is lower level network programming. That is, it doesn't use any higher level libraries, such as boost or SFML/Network. Sockets are what allow two machines to communicate.
In a Windows implementation, you'd rely on the WinSock library. For *nix, it'd be socket.h.
If you're looking at this level, the below website is a good resource. It's a lot to read through and can be a little difficult to follow at times, but if you persevere, you should get it.
Most socket tutorials you'll find are a little messy. That's usually because socket programming is fairly messy in itself. A lot of people will recommend using a higher level library to avoid to woes of socket programming. Personally, I think it's worth a go as it'll give you a better insight as to how communication works.
i don't really care if its sockets or using high level libraries, i just a simple client server program thats easy to understand and just does the basic things ie the things i mentioned in the first post