IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Transfert de fichier via sockets...


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 227
    Par d�faut Transfert de fichier via sockets...
    Salut,

    J'essaye de mettre au point un transfert de fichier via des sockets, pour le moment la taille maximum pouvant �tre transmise est de 250octets. Bien sur �a na pas beaucoup d'interet, c'est pour cela que je souhaite l'am�liorer.

    Pour de plus gros fichiers, je pensais les couper en plusieurs petits morceaux pour les envoyer et je me demandait comme faire pour enoyer les paquets.

    Si on envoye tout en un seul coup, les messages risquent de s'entasser chez le destinataire surtout si sa connexion est moins rapide, et la je voudrait bien savoir ce qu'il se passe...
    Faut t'il attendre une r�ponse du destinataire apr�s chaque paquet envoy�s et envoyer les paquets 1 � 1 (dans ce cas �a risue de ne pas �tre trop rapide surtout si le ping est important)

    En fait je voudrait savoir quelle est la m�tode � adopter pour envoyer une grande quantit� de donn�es.

    Merci de me conseiller

  2. #2
    Membre confirm�
    Inscrit en
    F�vrier 2003
    Messages
    141
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2003
    Messages : 141
    Par d�faut
    si tu dispose d'une memoire tr� grande (un buffer devra contenir le fichier), tu peux tout envoyer d'un coup, TCP.IP se chargera de la segmentation.
    La bonne technique est biensur de faire toi meme une segmentation pour ne pas saturer la memoire de ton pc. Tu peux par exemple utiliser un buffer de 1ko ou 10ko. TCP/IP se chargera du reste, tu n'as qu'a envoyer les donn�es (avec un marqueur de d�but et de fin)

    jespere avoir �t� clair

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 227
    Par d�faut
    Merci de ta r�ponse OjBarbare ,mais je voudrait savoir si dans un cas extr�me cette solution marche toujours.

    Par exemple on envoi des donn�es avec une connexion tr�s rapide (100Ko/sec.) et du cot� du client (celui qui re�oit le fichier) on a une connexion tr�s lente (4Ko/sec. : vitesse d'un 56K).
    Si avec cette configuration on envoi un tr�s gros fichier (de 200Mo par exemple), au bout d'une qurantaine de minute l'�m�tteur aura fini l'envoi et le client aura re�u seulement quelques M�gaOctets (eh oui c'est pas rapide un 56K ) on va se retrouver avec 190Mo dans le r�seau TCP/IP.

    Les derniers paquets arriverons t'il � destination : Les FAI ne feraient t'ils pas une limitation dans ce cas pour emp�cher la surcharge du r�seaux :

  4. #4
    Membre confirm�
    Inscrit en
    F�vrier 2003
    Messages
    141
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2003
    Messages : 141
    Par d�faut
    absolument pas, TCP/IP gere les envois de tel sorte que l'emetteur soit syncroniser avec le recepteur : il n'y aura jamais 190Mo qui se promenent sur le reso, �a voudrait dire qu'ils sont stock� sur un routeur....
    quoi qu'il en soit, tu n'as pas � t'occuper de ce genre de probleme. Du point de vue du developpeur, l'emetteur envoi, le recepteur re�oi, c'est tout.

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 227
    Par d�faut
    ok mais alors �a s'entasse dans la RAM ? A partir du moment ou �a a �t� envoy� c'est bien stock� quelque part non?
    Peut connaitre la taille des donn�es qui se trouve dans le tampon d'�mission (�a pourrait �tre bien pour optimiser le programme)

    PS: je suis en mode conn�ct� je sais pas si �a se passe de la m�me fa�on
    EDIT: je voulait dire non-bloquant (�videmant que je suis en mode connect� )

  6. #6
    Membre confirm�
    Inscrit en
    F�vrier 2003
    Messages
    141
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2003
    Messages : 141
    Par d�faut
    en effet c'est le petit d�tail qui a son importance
    l� jme souviens plus comment c'est gerer dans ce cas l�... je pense que c'est empil� dans la ram

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 227
    Par d�faut
    Quelqu'un connaitrai t'il un cours sur les TCP/IP : parce des qu'on recherche des truc qui sortent un peu de l'ordinaire c'est pas tr�s facile � trouver de la doc sur le net.

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 227
    Par d�faut
    J'ai trouv� �a comme info :

    "L'�criture sur la socket est bloquante uniquement si le tampon �mission
    est plein (si la socket a �t� d�clar�e non bloquante, l'�criture retourne
    une erreur)."

    "Un m�canisme de rangement dans des m�moires tampons est mis en oeuvre par les sockets TCP. Pour chaque connexion, il existe un tampon d��mission (de 4 Ko � 16 Ko environ) et un tampon de r�ception. "

    Source : http://www-gtr.iutv.univ-paris13.fr/...teme/TPudp.rtf

    Donc apparement le truc d'envoyer tout le fichier d'un coup serait impossible compte tenu de la capacit� du tampon.

    : Quelqu'un ne connaitrait pas une fonction qui indique la taille qu'il reste de libre dans le tampon de reception

  9. #9
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 227
    Par d�faut
    Je voudrai savoir si j'envoi un paquet de 65535 octets, et que j'envoi juste apr�s* un autre de 512 octects,
    le paquet de 65535 octets va t'il �tre envoy� dans sa totalit� avant celui de 512 octets.

    *:avant que le paquet de 65535 octets soit fini d'envoyer

    Ca m'arrangerai que le paquet de 512 octets soit prioritaire, comment faire ?

Discussions similaires

  1. transfert fichier via socket
    Par ac/dc dans le forum C++Builder
    R�ponses: 3
    Dernier message: 26/11/2006, 21h21
  2. [automatisation] Transferts de fichiers via FTPEXPERT 3
    Par nicetios dans le forum Internet
    R�ponses: 6
    Dernier message: 14/10/2006, 13h47
  3. transfert de fichier via port RS232, ...
    Par Axiome dans le forum C
    R�ponses: 2
    Dernier message: 21/04/2006, 13h51
  4. []transfert de fichiers via FTP
    Par ista9im dans le forum VB 6 et ant�rieur
    R�ponses: 3
    Dernier message: 01/10/2005, 23h02
  5. Transfert de fichiers par sockets
    Par Kaori dans le forum C++
    R�ponses: 19
    Dernier message: 26/01/2005, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo