View Full Version : [ftp]
Come posso rendere il <CRLF>(Carrel Return Fiel credo) in C++???
Mi serve perche del RFC dell' FTP ho letto che per stabilire una connessione si fa cosi:
USER <SP> <username> <CRLF>
PASS <SP> <password> <CRLF>
ACCT <SP> <account-information> <CRLF>
CWD <SP> <pathname> <CRLF>
CDUP <CRLF>
NOOP <CRLF>
P.S: ma i vari campi sono di tipo char dovendo essere ASCII??
P.S2: ma i file che trasmetto devono essere grupi di byte o posso inviare il tipico .zip?
Tnk
"/r/n"
Anzi, per evitare equvoci (sul cotenuto di /n che cambia da sistema sistema):
const char crlf[] = {13, 10, '\0'};
tnk e per i 2 PS????
Cmq grazie mille per la pazienza per le mie domande banali:)
PS: tutte stringhe di char...
PS2: tu devi inviare una sequenza di byte...che poi volendo può essere un file che leggi dal disco...quindi anche uno zip o qualsiasi altro tipo di file...
ok x il ps1.
X i file............. ma se io gli carico un file da inviare lui mi carica la rappresnetazione in byte del files, giusto??
Dev' essere una cosa tipo questa?
const char crlf[] = {13, 10, '\0'};
char user[] = "es@es.it";
char pws[] = "pws";
char acc_info[] = "";
char path[] = "/";
char header[] =
"USER <SP> " + user + crlf,
"PASS <SP> " + pws + crlf,
"ACCT <SP> " + acc_info + crlf,
"CWD <SP> " + path + crlf;
"CDUP " + crlf,
"NOOP" + crlf;
Pero non so se il char accetta l'operatore + come modo per appendere :(
Potrei usare uno string e poi trasformarlo in char con .c_str() ma nn so se è la stessa cosa.
Orrore !!! Assolutamente non lo accetta !!!
Usi un bel tipo string e concateni tutte le tue belle stringhette !!!
Originariamente inviato da Luc@s
ok x il ps1.
X i file............. ma se io gli carico un file da inviare lui mi carica la rappresnetazione in byte del files, giusto??
Beh direi...quale altra rappresentazione conosci ?
Originariamente inviato da cionci
Orrore !!! Assolutamente non lo accetta !!!
Usi un bel tipo string e concateni tutte le tue belle stringhette !!!
Ok ma poi lo accetta il protocco FTP una string???
Comunque non puoi fare un comandone intero come hai fatto ora... Devi attendere la risposta del server FTP ad ogni tuo comando !!!
Originariamente inviato da cionci
Beh direi...quale altra rappresentazione conosci ?
Quindi mi invia qualsiarsi tipo di file.............e me lo ricostruisce di la, giusto???
Originariamente inviato da Luc@s
Ok ma poi lo accetta il protocco FTP una string???
Lo converti con c_str()...
Originariamente inviato da Luc@s
Quindi mi invia qualsiarsi tipo di file.............e me lo ricostruisce di la, giusto???
Se gli dai i comandi giusti sì :)
Originariamente inviato da cionci
Lo converti con c_str()...
cioe quello che avevo pensato io???'
const char crlf[] = {13, 10, '\0'};
char user[] = "es@es.it";
char pws[] = "pws";
char acc_info[] = "";
char path[] = "/";
string header;
header += "USER <SP> ";
header += user + crlf;
header += "PASS <SP> ";
header += pws + crlf;
header += "ACCT <SP> " + acc_info + crlf;
header += "CWD <SP> " + path + crlf;
header += "CDUP " + crlf;
header += "NOOP" + crlf;
char ftp_header[] = header.c_str();
A me cosi non va pero:(
Se gli dai i comandi giusti sì
Che trovo nel RFC?
Sì...
Non porta che tu assegni la stringa ad un vettore di char...
Quando vuoi inviare i dati semplicemente passi direttamente comando.c_str() e la dimensione del comando comando.size() alla funzione che spedisce il comando...
Comunque ripeto non puoi costruire tutto il gruppo di comandi così...devi inviare un comando alla volta ed aspettare la risposta dal server !!!
Originariamente inviato da cionci
Comunque ripeto non puoi costruire tutto il gruppo di comandi così...devi inviare un comando alla volta ed aspettare la risposta dal server !!!
Lo so..........ma era per sapere se erano corretti i comandi.
Mi consigli di fare un controllo sul testo della risposta?
P.S: <SP> cos'è?
Originariamente inviato da Luc@s
Mi consigli di fare un controllo sul testo della risposta?
Devi farlo...per rispettare il protocollo !!! Leggiti l'RFC !!!
Originariamente inviato da cionci
Devi farlo...per rispettare il protocollo !!! Leggiti l'RFC !!!
Lo sto facendo ma è una paccata di roba
:eek:
Originariamente inviato da Luc@s
Lo sto facendo ma è una paccata di roba
:eek:
Chiaro che è una paccata...è la definizione ufficiale di un protocollo di comunicazione !!!
si ma il mio inglese non è il massimo quindi ici metto un po!
Certo, ma è uno sforzo che vale la conoscenza acquisita... Non posso certo leggerlo io per te ;)
hai ragione.
Cmq dopo che l'ho letto.................so come scambiare dati.
Ma come connettermi ad internet?????
P.S: ma sull'altro host ci dev'essere un server ftp???
Scusa per le mie stressanti domande
http://www.napolihak.it/pagine/rfc_it/rfc959_it.htm
Purtroppo è tradotta con un traduttore automatico...
Ste traduzioni nn sono il massimo.......ma se nn imparo l'inglese che informatico sono?
Cmq dopo che l'ho letto.................so come scambiare dati.
Ma come connettermi ad internet?????
P.S: ma sull'altro host ci dev'essere un server ftp???
Scusa per le mie stressanti domande
Dall'altra parte ci deve essere un server FTP !!! Direi !!!
Dopo averlo letto NON sai come trasmettere i comandi su internet...sai come funziona il protocollo FTP e basta...
Per trasmettere i comandi devi saper usare i socket !!!
Originariamente inviato da cionci
Dall'altra parte ci deve essere un server FTP !!! Direi !!!
Dopo averlo letto NON sai come trasmettere i comandi su internet...sai come funziona il protocollo FTP e basta...
Per trasmettere i comandi devi saper usare i socket !!!
e li che volevo arrivare:)
Mi sembra che i socket siano OS-dipendent: linux li vede come file mentre winzoz a i solito nomi di funzioni kilometrike:cry:
Come faccio a usare socket multi-os, se esistono?
I socket sono praticamente uguali sia su Linux che su Windows...
socket, bind, listen, accept, connect, send, recv, recvfrom, select, getsockopt, setsockopt...
Ci sono piccole differenze...
Originariamente inviato da cionci
I socket sono praticamente uguali sia su Linux che su Windows...
socket, bind, listen, accept, connect, send, recv, recvfrom, select, getsockopt, setsockopt...
Ci sono piccole differenze...
whow nn lo sapevo!
Ci sono RFC anche su essi???
mi sa che per la storia dei nomi chilometrici ho confuso i winsock(socket a + alto livello della M$) con i socket vero?
Originariamente inviato da Luc@s
Ci sono RFC anche su essi???
No...le RFC sono per i protocolli internet...
Per i socket in C ci sono le varie guide che trovi tramite un motore di ricerca...
http://telemat.die.unifi.it/book/1997/winsock_prg/wsk_idx.html
Le funzioni con WSA davanti non sono portabili...
Originariamente inviato da Luc@s
mi sa che per la storia dei nomi chilometrici ho confuso i winsock(socket a + alto livello della M$) con i socket vero?
No...anche quelle funzioni sono della libreria winsock2...
Per compatibilità però ti conviene usare quelle che ti ho detto !!!
Le funzioni con WSA davanti ti servono al massimo per inizializzare Winsock e per la gestione degli errori...
tnk di tutto cmq................
sei un mostro da te imparo sempre.............ma come fai????
Cmq i socket sono a basso lvello se non ho capito male
Sono a basso livello...di API di più alto livello ce ne sono a bizzeffe...
Originariamente inviato da cionci
Sono a basso livello...di API di più alto livello ce ne sono a bizzeffe...
cioe byte a byte, no?
Ma quelle a + alto livello...............sono portabili???
P.S: ma tu dove hai imparato le socket?
Originariamente inviato da Luc@s
cioe byte a byte, no?
Che intendi ?
Originariamente inviato da Luc@s
Ma quelle a + alto livello...............sono portabili???
Assolutamente no !!!
Originariamente inviato da Luc@s
P.S: ma tu dove hai imparato le socket?
All'uni...
intendevo basso livello == byte x byte , se ho ben capito.
E che non trovo buone doc su come usare i socket.
P.S: poi c'è il problema GUI:cry:
Originariamente inviato da Luc@s
intendevo basso livello == byte x byte , se ho ben capito.
No...per basso livello in questo caso si intende che non ci sono livelli software intermedi fra il sistema operativo e quelle funzioni
Originariamente inviato da Luc@s
E che non trovo buone doc su come usare i socket.
http://www.google.it/search?sourceid=navclient&hl=it&ie=UTF-8&oe=UTF-8&q=tutorial+socket
ora vedo ste guide!
Cosa intendi con non ci sono livelli software intermedi???
Che le funz richiamano le primitive in ASM senza passare per l'OS?
No...che passa direttamente al SO senza livelli di software intermedi (in pratica non vengono chiamate altre API per realizzare quella chiamata)...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.