I need a setup involving a client or front-end program that sends some tasks to a back-end process for processing and collects results for output. I know this involves socket programming, but one issue here is that the front-end is a windows program and the back-end is a linux cluster server. Converting the front-end to linux would take too much effort considering I've used some windows functions for convenience. So my question is, how do I implement this? What libraries should I use for both setups? Is the socket programming API standard and therefore cross-platform?