Non puoi inviare un file tramite gli ObjectStream, perchè così invii l'oggetto FIle. Cosa ci fai con l'oggetto File ? Non è il file, è solo una classe che ne contiene il percorso e il nome, ma poi come fai a leggerlo? Magari puoi mandare prima il contenuto con BufferedInpuStream/BufferedOutputStream (mandando il file byte-per-byte) e poi mandi File con gli ObjectStream per sapere il nome ecc...

Poi dai che Java non è fastidioso come linguaggio, è che bisogna capirlo Tutti elogiano Python, ma personalmente preferisco di gran lunga Java (venendo dal C++)...