You can roll your own sockets and communicate from host to guest VM. I first did it rolling my own socket class, and then switched over to Boost::Asio sockets. I have a program that runs on the guest as a client, and my server runs on the host. The server sends commands to the client, that then initiates job tasks.
However, after some time running, VMWare seems to drop the socket connection on the client, even with KeepAlive settings set up, and me forcing heartbeat messages every so often to try to keep the socket alive. The same thing happened in my roll my own socket class, so is the reason I switched to Boost::Asio, but the same thing happens.
I'm going to now switch to VMCI to see if the socket will stay alive.
-Rod