Mi continua a sfuggire il contesto. Fammi capire: sei tu che "a mano" apri un terminale telnet, digiti i comandi, ne apri un altro, ti connetti, ecc...?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.
Upload, quindi. Ok.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.
Parlando "a bassi livelli" tecnicamente ti basta chiudere il socket del canale dati (aka chiudere la connessione).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.
Parlando "a livelli beceri", in pratica, basta anche che chiudi brutalmente il terminale che usi per il canale dati.
No, gli unici caratteri ASCII con cui puoi avere a che fare, nel protocollo FTP, riguardano il canale comandi, non quello dati. Anche se questo tecnicamente non è del tutto vero non è cmq il tuo caso.Credo ci sia una sequenza di caratteri ascii che eseguiti chiudono il socket e di conseguenza il file.
Dopo aver mandato il comando "STOR" non dovrai mandare nessuno comando, sul canale comandi, che segnali al server la fine del trasferimento.
Come ripeto, tale stato lo notifichi unicamente chiudendo il canale dati.
Convengo che un comportamento più sensato, per il protocollo, sarebbe quello di appoggiarsi ad un comando specifico, ma questo è FTP. Il suo design è di quanto più scandaloso ci possa essere... per non parlare, poi, della qualità dell'RFC... Da suicidio...