non ho chiaro il motivo per cui devi fare agire anche il client da server, nella comunicazione ad un certo punto hai
1. client richiede invio file
2. server accetta file --> usa connessione che già ha messo su
3. server rifiuta --> do nothing
4. chiusura connessione
penso che in questo modo sia più semplice e ti risolvi problemi diversi (es porte disponibili sul server, comunicazione porta al client, apertura connessione, eventuali firewall sul client ecc ecc)

Rispondi quotando