Stobby
22-10-2009, 00:15
Salve a tutti,
per motivi di studio sto scrivendo un piccolo programma in C++ che, avvalendosi della libreria winsock2 opera in modalità client sul protocollo FTP.
Attualmente sarei interessato a riuscire a gestire un trasferimento di dati in Active mode, tuttavia mi trovo di fronte ad un problema che mi sta creando non pochi grattacapi.
Secondo le specifiche del protocollo FTP, quando la connessione è in Active mode, il client contatta il server da una porta random N verso la porta 21 e, una volta stabilita la connessione, tramite il comando PORT segnala al server la porta su cui il client è in ascolto per la trasmissione dati (che deve essere la porta N+1).
Attualmente mi trovo nella situazione di essere in grado di avviare la connessione sulla porta 21 in modo corretto, tuttavia, non riesco a stabilire la connessione dati (porta 20 lato server). Il mio problema principale infatti risiede nel fatto che non sono in grado di leggere la porta che randomicamente è scelta da windows per uscire dal mio pc (client) e quindi non sono in grado di determinare quale è la porta N+1 da comunicare come argomento del comando PORT... ho letto praticamente tutto quello che msdn fornisce a livello di documentazione ma non ho trovato risposte.
Ringrazio tutti coloro che potranno darmi una mano.
Ciao
per motivi di studio sto scrivendo un piccolo programma in C++ che, avvalendosi della libreria winsock2 opera in modalità client sul protocollo FTP.
Attualmente sarei interessato a riuscire a gestire un trasferimento di dati in Active mode, tuttavia mi trovo di fronte ad un problema che mi sta creando non pochi grattacapi.
Secondo le specifiche del protocollo FTP, quando la connessione è in Active mode, il client contatta il server da una porta random N verso la porta 21 e, una volta stabilita la connessione, tramite il comando PORT segnala al server la porta su cui il client è in ascolto per la trasmissione dati (che deve essere la porta N+1).
Attualmente mi trovo nella situazione di essere in grado di avviare la connessione sulla porta 21 in modo corretto, tuttavia, non riesco a stabilire la connessione dati (porta 20 lato server). Il mio problema principale infatti risiede nel fatto che non sono in grado di leggere la porta che randomicamente è scelta da windows per uscire dal mio pc (client) e quindi non sono in grado di determinare quale è la porta N+1 da comunicare come argomento del comando PORT... ho letto praticamente tutto quello che msdn fornisce a livello di documentazione ma non ho trovato risposte.
Ringrazio tutti coloro che potranno darmi una mano.
Ciao