Hi James, I realize this is a little late...
You can share a printer with a driver and other PC's can find that shared printer via the driver just like any shared office printer. You can use the shared driver programatically, but it will not really have an IP address that you can open a TCP socket to. The only way to do that is to create a mini server on the PC that is connected to the USB printer and use it to direct print jobs. It can get complicated as you will have to handle queuing yourself in the code. I plan to have an article and sample code posted next week that should show how to do this.