Avatar billede d34c0n Praktikant
18. oktober 2003 - 20:59 Der er 16 kommentarer og
1 løsning

Ftp command: PUT!!

Hejsa.

Jeg kan logge ind på min ftp server således:

                sendl(sockfd, "USER %s\r\n", USER);
                sendl(sockfd, "PASS %s\r\n", PASS);

Jeg ved ikke hvorfor lige '\r\n' men det har jeg hørt at man skulle bruge.

Så ville jeg uploade en fil således:

                sendl(sockfd, "BINARY\r\n");
                sendl(sockfd, "PUT C:\\License.txt\r\n");

Den siger dog "500 unknown command" til dette.
Hvad kan jeg gøre?
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:05 #1
Erstat:

sendl(sockfd, "BINARY\r\n");

med:

sendl(sockfd, "TYPE I\r\n");
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:06 #2
Erstat:

sendl(sockfd, "PUT C:\\License.txt\r\n");

med:

sendl(sockfd, "STOR C:\\License.txt\r\n");
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:07 #3
Og inden STOR skal du have sendt en PORT med oplysning om data port.
Avatar billede erikjacobsen Ekspert
18. oktober 2003 - 21:07 #4
Prøv at skrive  "quote help"  i en ftp i din dosprompt/shell. Så ser du
hvilke kommandoer serveren forstår. Fx:
quote help
214-The following commands are recognized (* =>'s unimplemented).
USER    PASS    ACCT*  CWD    XCWD    CDUP    XCUP    SMNT*
QUIT    REIN*  PORT    PASV    TYPE    STRU    MODE    RETR
STOR    STOU*  APPE    ALLO*  REST    RNFR    RNTO    ABOR
DELE    MDTM    RMD    XRMD    MKD    XMKD    PWD    XPWD
SIZE    LIST    NLST    SITE    SYST    STAT    HELP    NOOP

Og det er ikke bare at skrive "put" som du gør i en klient. Ftp-protokollen
er ikke den nemmeste at gå i gang med. Hvad anvender du af dokumentation?
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:08 #5
(FTP protokollen er ikke helt nem at implementere)
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:08 #6
Og et svar.
Avatar billede d34c0n Praktikant
18. oktober 2003 - 21:09 #7
arne_v: ja ok, den siger "no permission" til at STOR nu.
hvad hedder kommandoen til at sende en port oplysning?
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:11 #8
PORT
Avatar billede d34c0n Praktikant
18. oktober 2003 - 21:12 #9
hmm "error in paramenters"

jeg brugte            
    sendl(sockfd, "PORT 21\r\n");
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:12 #10
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:15 #11
PORT skal kaldes med 6 tal adskilt af komma (4 tal for IP adresse,
2 tal for port nummer).
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:16 #12
Og det er ikke port 21 - det er FTP control port.

Det her er data port.
Avatar billede d34c0n Praktikant
18. oktober 2003 - 21:16 #13
hvilken ip adresse? server?
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:20 #14
Nej din.

FTP (medmindre PASV) fungerer med at client connecter til port 21
på server og sender commands. Når der så skal flyttes data så
lytter klienten på en port og serveren connecter til den.

PORT fortæller hvad serveren skalconnecte til.
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:21 #15
Læs RFC354.

Grundigt !

FTP er en af de allersværeste protokoller at implementere korrekt.
Avatar billede d34c0n Praktikant
18. oktober 2003 - 21:22 #16
ok, tak.

men jeg forstår ikke det med de 2 cifre for port. jeg fatter ikke hvilken port du mener? hvor finder jeg den?
Avatar billede arne_v Ekspert
18. oktober 2003 - 21:25 #17
Du vælger selv en port og lytter på den.

Et port nummer er en to byte integer derfor to tal.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester