The gpsd_client node uses the gps structure defined in <libgpsmm.h>, which (in the version of gpsd I'm using: gpsd3.3) uses QTcpSocket to connect to gpsd. I haven't read through the code very extensively, but it seems that if you set the ROS parameters for host and port in the gpsd_client node, it should try to connect to your TCP socket.
rosrun gpsd_client gpsd_client _host:=YOUR_HOST _port:=YOUR_PORT