Para enviar archivos e imágenes, podes valerte, como ya te han dicho, de las indy (TidTCPClient), que tienen un método WriteStream con el que podes enviar cualquier cosa que pueda ponerse en un stream (en principio, cualquier archivo via TFileStream, o imagen via TMemoryStream, etc).
Creo que es una buena idea que descargues las demos de las indy (
http://www.indyproject.org), y te des una vuelta por el chat, idTCPDemo y el TCPStreamClientServer.
Hasta luego.
