Originariamente inviato da billiejoex
ok

Non esiste nessun "carattere di chiusura" per segnalare la fine del trasferimento.
Nel caso in cui tu stia scaricando dal server sarà il server stesso che alla fine del trasferimento chiuderà la connessione dati e ti notificherà l'interruzione del trasferimento inviandoti una risposta sul canale comandi (226, se il file è stato trasmesso per intero, altrimenti 426).
Nel caso in cui tu stia uploadando (da client a server) quando avrai terminato di mandare tutti i dati dovrai essere tu stesso a chiudere il canale dati e in seguito a tale azione riceverai una risposta del tipo 226 sul canale comandi.


Non capisco come utilizzi le due sessioni telnet...
Con la prima ti connetti al canale dati, esegui PASV per sapere su che porta sarà in ascolto il canale dati e successivamente apri un secondo telnet col quale ti connetti al canale dati? Tutto questo manualmente?
Lo trovo un po' scomodo.
Puoi semplificarti di molto la vita operando da un singolo, semplice, script.
Hai centrato il punto billiejoex,
ti spiego ... la procedura manuale e' molto scomoda, ma e' quella che un sistema a microcontrollore dotato di modem (che non ha sistema operativo) puo' eseguire svolgendo i comandi base del protocollo.
Il processo che svolge e' di collegarsi al server sulla porta 21 e quindi di controllo, impostare la directory, il passive mode (ottenendo la porta di collegamento per i dati da scaricare) ed effettuare uno STOR di dati ascii.
Quando apro la sessione dati e invio le stringhe (upload effettuo) devo chiudere tale sessione per avere la risposta 226 che dicevi sul socket di controllo.
Quello che non sto trovando e' lcome chiudere tale porta per chiudere il file e avere il 226 di risposta.
Se non lo faccio lo fa il server dopo un certo tempo che credo sia un time out, ma il file non e' subito disponibile, ed e' un problema.
Spero di essere stato chiaro.
Credo ci sia una sequenza di caratteri ascii che eseguiti chiudono il socket e di conseguenza il file.
Grazie