Communicate with printer over network

I'm looking for the a way to accomplish the following:

1. Print to any one of 50+ network printers at our site

2. Get printer status if a printer is offline or has an error

I have the ZPL code for the labels I need. I just need to know what's the best method for printing from a central program and getting printer statuses if possible. All of the printers are network printers on a windows server.

We will most likely use C# or Python to build the program to communicate with the printer.

What should I be reading up on? Should I be using sockets or the HTTP Post or am I looking at the wrong things? Can you point me to the best documentation for learning how to do this?