Hola...
No sé qué es lo que no entiendes. Parece que lo tienes todo claro, ¿no?
En la clase Socket tienes un getOutputStream y un getInputStream que te devuelven los flujos de entrada / salida que necesitas para el enviar el fichero.
Usa un FileInputStream para leer el archivo y ya está.
Recuerda que, mientras el cliente tiene que usar la clase Socket para las comunicaciones, el servidor tendrá que utilizar una clase ServerSocket, para mantenerse a la escucha en el puerto por donde realices la comunicación.
Espero haberte aclarado algo.
Un saludo.
Silverfox.