Tenes toda la razón. Estoy acostumbrado a la simplicidad de las INDY para estos menesteres.
Me he dado una vuelta por el help, y me parece que la solución podria estar en un objeto llamado TWinSocketStream (que es de la familia de tClientSocket y TServerSocket). Te recomiendo que profundices un poco sobre él, y que luego comentes en este mismo hilo si te es funcional o no. Yo lo he visto de volada y me parece que podria servir.
Hasta luego.