FTP [Résolu]

Signaler
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
-
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
-
Bonjour, je cherche à faire une connection à un serveur FTP. Je sais qu'il existe wininet.dll ou les sockets. Quelle est la meilleure solution et comment la mettre en oeuvre (si c'est les socket)?
Merci

________________________________________

debut:
mov ah, 09h
mov dx, offset message
int 21h
ret
message db ?@+?, ?$?
end debut
________________________________________

17 réponses

Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

pour se connect

quote user "....."
quote pass "....."

etc....
pour le protocole FTP :

http://www.iprelax.fr/ftp/
dont :
 http://www.iprelax.fr/ftp/ftp_session.php
et les commandes :
http://www.iprelax.fr/ftp/ftp_descr2.php
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

oui un socket simple, tout bete, tu envoi par socket des fonction FTP

(PS: n'oubliez pas Reponse Accepter)
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

<tt>

#include <winsock2.h><winsock2.h>
#pragma comment(lib, "ws2_32.lib")

void main()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
char *buffer = new char[255];
/* Tout est configuré pour se connecter sur IRC, haarlem, Undernet. */
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr("0.0.0.0");
sin.sin_family = AF_INET;
sin.sin_port = htons(21);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
</winsock2.h></tt>
<tt>
<tt>send(sock, "quote user wxccxw", 17, 0);</tt>
</tt>


<tt>
<winsock2.h>closesocket(sock);
WSACleanup();
}

se connect avec l'utilisateur wxccxw sur 0.0.0.0
</winsock2.h>
</tt>
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

http://c.developpez.com/WalrusSock/
pour apprendre les base avec les socket
puis apres tu send().... les fonction FTP

bonne chance !
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
7
ok merci. En fait si je comprends bien c'est une connection socket classique en envoyant des fonctions spéciales? En tt cas merci

________________________________________

debut:
mov ah, 09h
mov dx, offset message
int 21h
ret
message db ?@+?, ?$?
end debut
________________________________________
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

une connection simple :

open ftpperso.free.fr 21
quote user xxxx
quote pass xxxx

GET ...

donc tu send sa !
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
7
il y a un truc que je ne comprend pas... Je dois mettre tout le temps quote"la commande" lors de l'envoi? Et lors de l'envoi de la commande list, sous quelle forme est renvoyée la réponse? un tableau ou une chaine?
________________________________________

debut:
mov ah, 09h
mov dx, offset message
int 21h
ret
message db ?@+?, ?$?
end debut
________________________________________
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
1
Merci wxccxw , c'est liens sont vraiment intéressent :D

Moi je sais pas, mais si tu as juste besoin une fois comme ca du FTP utilise WinInet c'est vrément plus simple que de manier le protocol en lui meme.
Certe ca ne va rien d'apprendre sur le protocol FTP mais bon...
Aprés si tu ne connais pas encore les sockets pour faire ton propre server FTP en maniant les sockets ca va te prendre un bout de temps!
Alors qu'avec WinInet en 1h00 maximum bein tu fais ce que tu veux avec  le FTP
MaLaDeDeDe 97one 
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
7
Il est vrai que Wininet est pratique pour faire un truc "vite fait" mais après des recherches et des tests, je me suis rendu compte que ses fonctionnalités sont assez "limitées". Je vais voir pour y faire avec les sockets, comme il n'y a pas de différence avec le socket normal et si je sèche je me tournerais vers Wininet. Merci du conseil
________________________________________

debut:
mov ah, 09h
mov dx, offset message
int 21h
ret
message db ?@+?, ?$?
end debut
________________________________________
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

le quote devant la commande est facultatif

je te fais une session simple :

Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Jean.PCTEK>ftp
ftp> open ftpperso.free.fr 21  // Facultatif avec WINSOCK
Connecté à ftpperso.free.fr.
220 Serveur de mise a jour des pages perso de Free.fr version [Jan 30 2006 17:28
:04]
Utilisateur (ftpperso.free.fr:(none)) : jguis // Pas bessoin de commande user avec certain server
331 Password required for jguis.
Mot de passe :              // pas besoin de commande pass avec certain server
230 User jguis logged in.
ftp> list
Commande non valide.
ftp> ls // on affiche tout les fichier et dossier
200 PORT command successful.
150 Opening ASCII mode data connection for file list
.
..
video.wmv
1.gif
2.gif
Jeanlepail.dll
download
BlueSky
Source.rar
nnrulz.rar
pass.txt
D3D9.rar
Logiciel
design
screen013.png
screen016.png
Reborn.rar
upload
cle.exe
logo.psd.zip
226-Transfer complete.
226 Quotas: utilisation de 25 Mo sur les 1024 Mo
ftp : 202 octets reçus en 0,08 secondes à 2,59 Ko/sec.
ftp> get D3D9.rar // je prends D3D9.rar
200 PORT command successful.

tout cela a ete fais grace a l'invite de commande et FTP.exe de windows.
on y voit des fonction simple sur mon FTP
tel que GET OPEN LS etc.... sinon la doc Iprelax.com est tres pratique encore bonne chance
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,

adrienva> personnelement je trouve que la réponse la plus pertinente
qui as été donné ici reste celle de maladedede. Wininet c'est rapide à
écrire, mais c'est bof. Si tu codes tout directement avec les sockets,
tu aura un control absolu sur tout ce que ton client fera (mais c'est
plus compliqué).
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
7
oui, la je viens de commencer à faire ca avec les sockets et ca me semble beaucoup plus "libre" que Wininet. Merci a tous de vos réponses.
________________________________________

debut:
mov ah, 09h
mov dx, offset message
int 21h
ret
message db ?@+?, ?$?
end debut
________________________________________
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
7
J'ai  un petit truc ou je bloque, lorsque je reçois mon buffer, je le cout<message db ?@+?, ?$?
end debut
________________________________________
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

ton buffer est mal initialiser (BUFFER[255] etc... fais de sizeof et strlen pour que sa soit bien)
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
7
C'est ce que j'ai fait (en copier coller de ton code) et ca ne fonctionne toujours pas
________________________________________


debut:
mov ah, 09h
mov dx, offset message
int 21h
ret
message db ?@+?, ?$?
end debut
________________________________________
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
7
euh je voulais dire copier coller du code sur le tuto de developpez.

________________________________________

debut:
mov ah, 09h
mov dx, offset message
int 21h
ret
message db ?@+?, ?$?
end debut
________________________________________