begin process at 2012 05 30 09:09:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

Serveur FTP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Serveur FTP

vendredi 31 décembre 2004 à 18:25:20 | Serveur FTP

simtiers

Salut tout le monde ! J'ai pour projet de faire un serveur FTP pour un réseau local, afin d'éviter de passer par l'explorateur Windows, et pour enrichir mes compétences de prgrammation.

J'aimerais savoir si je dois utiliser les sockets "pures" ou les Winsocks (serveur sous Windows), et comment gérer les connexions multiples. C'est ce dernier point que je trouve très important. J'aimerais aussi savoir comment effectuer le transfert de fichiers : tout d'un bloc, ou morceaux par morceaux ?

Pour ce qui est des references pour le protocole FTP, j'ai déjà : les RFC et le site www.salemioche.com

Merci
vendredi 31 décembre 2004 à 20:34:18 | Re : Serveur FTP

Gendal67


Euh, perso, j'opterais pour une connexion client/server standard, genre en connection-less (UDP) puisqu'il s'agit d'un résau local...jme suis aussi posé la question du transfert de fichier pour un autre style d'appli ^^....et ne connaissant pas un protocole ou une fonction qui fait tout le boulot, j'ai pensé à faire tout simplement des envois successifs de données, donc d'envoyer le fichier par paquets de données (morceaux)...genre tu connectes à ton server, tu lui envoie une commande qui spécifie que tu veux télécharger ou uploader tel ou tel fichier et apres tu te retrouve avec une fonction du type :

char buffer[500];
ZeroMemory(buffer, sizeof(buffer));

DWORD dwSize = GetFileSize(nom_fichier, 0);
DWORD dwSended = 0;

tant ke fichier pas fini {

sendto(sock, buffer, 500, 0, (SOCKADDR*) &addr, sizeof(addr));
dwSended += 500;
}

Tu vois, un truc dans ce genre la...:-) si tu as des questions, je ne suis pas un expert, bien au contraire, mais je me ferai une joie de t'aider si je le peut, donc n'hésite pas à m'envoyer des messages en privé :)

Bonne soirée, et pour ceux qui aiment la nouvelle année, Joyeuse année 2005....

++


Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
samedi 1 janvier 2005 à 16:06:58 | Re : Serveur FTP

xterminhate

Membre Club
Au stadard, FTP se base sur TCP. Pour faire plus léger, il existe TFTP qui se base sur UDP. Si tu veux utiliser un client (genre freeware, shareware, etc...) il te faut un serveur codé selon le standard. D'ailleurs, TCP te simplifie bcp la vie car tu n'as pas besoin de gérer le fragmentation de ton fichier.... j'avais comme projet perso de coder un serveur ftp. Projet laissé en suspens. Si tu as besoin d'un coup de main !

Cordialement,
Xterminhate.
samedi 1 janvier 2005 à 17:11:28 | Re : Serveur FTP

simtiers

Merci les gars : sachez que toute aide est la bienvenue, car la programmation, c'est avant tout un esprit d'entre-aide.

J'ai justement besoin d'un conseil : comment faire pour pouvoir gérer plusieurs connexions en même temps, sachant que j'aurais une vingtaine de connexions simultanées possibles.

J'avais pensé faire un classe pour le dialogue avec un client, et créer un thread par client, mais je sais pas si ça irait, ni comment l'implanter réellement.
samedi 1 janvier 2005 à 20:34:27 | Re : Serveur FTP

simtiers

Qu'est-ce que t'entends par :

"TCP te simplifie bcp la vie car tu n'as pas besoin de gérer le fragmentation de ton fichier"
samedi 1 janvier 2005 à 22:53:53 | Re : Serveur FTP

xterminhate

Membre Club
TCP garantit le bon acheminement des données quelque soit leur taille. Si un fragment est perdu durant l'émission de ton fichier, TCP assure la réémission. Si les fragments sont déséquencés, TCP assure le réordonnancement à la réception. Etc...

UDP n'assure pas ces services, par définition.

Si tu utilises UDP, c'est à toi de mettre en oeuvre les mécanismes qui vont garantir le bon acheminement des données à travers le réseau. Dans un LAN les risques sont faibles, mais via Internet ou tout autre WAN, c'est indispensables.

Par contre, si tu utilises TCP, tu n'as rien d'autre à faire qu'un vieux send(). Tu pourras donc te concentrer sur l'implémentation du protocole FTP et oublier les problèmes réseaux.

Cordialement,
Xterminhate.
dimanche 2 janvier 2005 à 12:45:30 | Re : Serveur FTP

simtiers

Effectivement, d'après ta description, le TCP semble être le plus simple à utiliser dans ce genre de transmissions.

Cela dit, est-ce que je peux enoyer un fichier de 600 Mo (image d'un disque), en un seul bloc.

Je pense que le partager en morceaux de 1 Mo serait plus intelligent (au niveau de la mémoire du serveur), mais je ne sais pas quelle serait la taille optimale pour transmettre un fichier.
dimanche 2 janvier 2005 à 23:45:46 | Re : Serveur FTP

xterminhate

Membre Club
Un coup de getsockopt avec l'option SO_SNDBUF te permet de connaitre la taille maximale du buffer d'émission. Cela fixe la taille des fragments de tes gros fichiers au moment de l'appel de send().

Cordialement,
Xterminhate.
samedi 8 janvier 2005 à 11:42:42 | Re : Serveur FTP

simtiers

Merci pour votre aide, les gars!

Encore quelques questions :
1°/ quel type de chaines de caractères dois-je utiliser : ANSI : char*, UNICODE : wchar_t* ou GENERIQUE : TCHAR* ?

2°/ lors du dialogue avec le client, dois-je créer une fonction par commande du protocole FTP, avec une fonction principale de dialogue, appelant les autres en temps voulu, ou bien tout faire dans la même fonction ?

Merci
samedi 8 janvier 2005 à 13:01:39 | Re : Serveur FTP

simtiers

Dites, est-ce qu'il y a un moyen d'écrire "..." au lieu de L"..." quand on veut faire de l'UNICODE.
(finalement, c'est ce que j'ai choisi)

1 2

Cette discussion est classée dans : windows, ftp, serveur, morceaux


Répondre à ce message

Sujets en rapport avec ce message

FTP [ par David ] Recherche source pour realiser une connection FTP sur mon serveur pour effectuer le transfert de fichier dans les deux sens Local-->Serveur Serveur--> client/serveur FTP [ par fab ] Salut!!!Je développe un prog client/serveur FTP en C++ Builder . Je veux pouvoir envoyer un fichier image au serveur . Pour cela j'utilise le composan Serveur http/ftp [ par fytlos ] Salut a tous,Je recherche les sources d'un serveur ftp/http programmé avec WinInet sous Visual c++Merci++ transfert FTP [ par Darkukai ] bonjour à tousje dois dévelloper un petit exe qui s'identifie et envoie un fichier sur un serveur ftp avec des paramètres rentrer par l'utilisateur (u Problème d'envoie par socket [ par CyberP ] J'ai fait un programme qui se connecte à un serveur ftp (le serveur ftp est aussi sur mon ordi). Je me connecte avec la fonction connect() et je recoi serveur FTP et compression [ par despro007 ] Bonjour, je debute en peu en C++,mais dans le cadre d'un projet plus vaste (multi langage) je dois réaliser un serveur ftp compressant les données env FTP Serveur : Taux de tranfert d'1 fichier [ par bergou ] Avec MFC : FTP serveurquelle est l'instruction qui me permet de connaitre le taux de transfert d'un fichier par rapport au modem ?MerciBergou Réalisation d'un serveur FTP [ par Ihsanovic ] Salut tt le monde,Je suis un étudiant en informatique, j'ai un tt ptit pblme, je dois réaliser un SERVEUR FTP qui gére les sessions des clients, le tr serveur ftp securisé en langage C [ par manyky54 ] Je cherche une source en C d'un serveur FTP sécurisé et je cherche aussi comment utiliser des fenêtres graphiques en C sous linux.merci de vos réponse


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales