[C++] Transfert de fichier...Prog Inside !!! hein, pas du rezo !

Transfert de fichier...Prog Inside !!! hein, pas du rezo ! [C++] - C++ - Programmation

Marsh Posté le 28-07-2003 à 13:39:58    

Je souhaite faire un transfert de fichier par reseau (UDP), pour que je puisse envoyer directement le fichier (sans le lire car par car), y-a-t-il uniquement le FTP ? ... y'a pas plus leger que de creer un serveur FTP, etc...pour envoyer un fichier sur une station cliente (qui elle pourra l'ouvrir directement et le lire)
 
Ma reponse a Chrisbk (que je n'ai pas eu le tps de poster ....) :
 
transfert d'un ficher en UDP sous VC++6. Suis-je oblige de passer par FTP ou existe-t-il des fonction pour charger direct un fichier en memoire ?
 
PS : C de la prog c++ sous VC++6, je doit faire communiquer 2 appli ! (avt de fermer le sujet, vous pouvez demamder plus de details comme a fait chrisbk ... hein  :o comme si je ne savais pas que je postais ds la rubrik prog  :ange: )


Message édité par Giz le 28-07-2003 à 13:42:25
Reply

Marsh Posté le 28-07-2003 à 13:39:58   

Reply

Marsh Posté le 28-07-2003 à 15:23:38    

:bounce:

Reply

Marsh Posté le 28-07-2003 à 15:25:12    

écoute on comprends rien à tes histoires, mais rien du tout.
alors fais un prog avec des sockets de base, tu lis ton fichier et tu ecris dans le socket et de l'autre coté, ça lis dans le socket, et ça ecrit dans un fichier

Reply

Marsh Posté le 28-07-2003 à 15:42:57    

perso l'utilisation de UDP pour le transfert de fichier me fait un pety peü peur je dois dire

Reply

Marsh Posté le 28-07-2003 à 15:49:23    

chrisbk a écrit :

perso l'utilisation de UDP pour le transfert de fichier me fait un pety peü peur je dois dire

  [:spamafote]

Reply

Marsh Posté le 28-07-2003 à 15:50:03    

chrisbk a écrit :

perso l'utilisation de UDP pour le transfert de fichier me fait un pety peü peur je dois dire


 
Ca se fait mais ça fait reprogrammer des truc qui sont dans le protocol TCP  [:spamafote]


---------------
Le Tyran
Reply

Marsh Posté le 28-07-2003 à 16:30:29    

Taz a écrit :

écoute on comprends rien à tes histoires, mais rien du tout.
alors fais un prog avec des sockets de base, tu lis ton fichier et tu ecris dans le socket et de l'autre coté, ça lis dans le socket, et ça ecrit dans un fichier


 
comment envoyer un fichier par protocol UDP d'un serveur a un client...bref j'etablis une connexion, je charge un fichier, je l'envoie via la socket de cree, le client le recoie (en le stockant kkpart) et peut le lire...sans devoir trasfert le fichier ligne par ligne. c t juste ca ma question de depart hein  :o spa trop dur non ?
 
Je voulais savoir s'il y a juste des fonctions simples pour faire ce transfert de fichier...sans passer par du FTP  :sarcastic:

Reply

Marsh Posté le 28-07-2003 à 16:33:38    

tu lis tout ton fichier dans un buffer, t'evoies le buffer par socket, tu recois et tu fais ton traitement dans le buffer de reception. Tu veux encore plus simple?

Reply

Marsh Posté le 28-07-2003 à 16:34:56    

giz a écrit :

c t juste ca ma question de depart hein  :o spa trop dur non ?

T'écris comme un bouzeux, forcément on a du mal à te comprendre :o  
[:ban]

Reply

Marsh Posté le 28-07-2003 à 16:43:28    

*Syl* a écrit :

T'écris comme un bouzeux, forcément on a du mal à te comprendre :o  
[:ban]


 
Ecoute en temps normal on dit :
"J'ai du mal a comprendre, tu peux reformuler STP"
 
Merci !  :o

Reply

Marsh Posté le 28-07-2003 à 16:43:28   

Reply

Marsh Posté le 28-07-2003 à 16:44:56    

polo021 a écrit :

tu lis tout ton fichier dans un buffer, t'evoies le buffer par socket, tu recois et tu fais ton traitement dans le buffer de reception. Tu veux encore plus simple?


 
Mais mettre un fichier dans un buffer c pas direct non ? :/

Reply

Marsh Posté le 28-07-2003 à 16:45:25    

giz a écrit :


 
Ecoute en temps normal on dit :
"J'ai du mal a comprendre, tu peux reformuler STP"
 
Merci !  :o  

Wé mais toi t'es un cas donc on n'est pas en temps normal ! :o

Reply

Marsh Posté le 28-07-2003 à 16:46:18    

giz a écrit :


 
Mais mettre un fichier dans un buffer c pas direct non ? :/


 
Map ton fichier en mémoire alors  [:spamafote]


---------------
Le Tyran
Reply

Marsh Posté le 28-07-2003 à 16:46:34    

giz a écrit :


 
Mais mettre un fichier dans un buffer c pas direct non ? :/


T'es lourd, t'aurais deja eu le temps de le coder de 10 facons differentes ton truc pendant que tu cherches midi a 14 heures  :sweat:

Reply

Marsh Posté le 28-07-2003 à 16:47:11    

LetoII a écrit :


 
Map ton fichier en mémoire alors  [:spamafote]  


[:meganne]
 
A mon avis t'y va un peu sec la :D

Reply

Marsh Posté le 28-07-2003 à 16:48:52    

chrisbk a écrit :


[:meganne]
 
A mon avis t'y va un peu sec la :D


 
A question idiote réponse idiote [:spamafote]


Message édité par LetoII le 28-07-2003 à 16:49:02

---------------
Le Tyran
Reply

Marsh Posté le 28-07-2003 à 16:48:59    

*Syl* a écrit :

Wé mais toi t'es un cas donc on n'est pas en temps normal ! :o  


 
Ha bon pkoi  :??: (je suis la 1ere personne a mal me faire comprendre ?  :sarcastic: )

Reply

Marsh Posté le 28-07-2003 à 16:51:15    

LetoII a écrit :


 
Map ton fichier en mémoire alors  [:spamafote]  


 
Giz avait dit :

Citation :

Suis-je oblige de passer par FTP ou existe-t-il des fonction pour charger direct un fichier en memoire ?


 
 
Voila c ce que je demandais, c koi les fonctions adequates ?


Message édité par Giz le 28-07-2003 à 16:51:42
Reply

Marsh Posté le 28-07-2003 à 16:52:00    

giz a écrit :


 
Ha bon pkoi  :??: (je suis la 1ere personne a mal me faire comprendre ?  :sarcastic: )

T'es pas la 1ère personne à écrire comme un porc et à chaque fois de me permet de l'ouvrir parce que ça m'énerve :D :o  
 
Pour ton pb tu suis ce qu'a dit taz et basta !

Reply

Marsh Posté le 28-07-2003 à 16:52:30    

giz a écrit :


 
Giz avait dit :

Citation :

Suis-je oblige de passer par FTP ou existe-t-il des fonction pour charger direct un fichier en memoire ?


 
 
Voila c ce que je demandais, c koi les fonctions adequates ?


C adépend, tu bosse sous quel OS?


---------------
Le Tyran
Reply

Marsh Posté le 28-07-2003 à 16:56:36    

LetoII a écrit :


C adépend, tu bosse sous quel OS?


 
Ben c du VC++ (c specifier dans le sujet ou personne n'a rien compris (rien lu plutot :lol:) )
C sous w98 of course, et le fichier est assez petit (64 octets) c un fihier temporaire, que je chargerais en rame directos. c tout  

Reply

Marsh Posté le 28-07-2003 à 16:59:00    

giz a écrit :


 
Ben c du VC++ (c specifier dans le sujet ou personne n'a rien compris (rien lu plutot :lol:) )
C sous w98 of course, et le fichier est assez petit (64 octets) c un fihier temporaire, que je chargerais en rame directos. c tout  


 
REgarde du côté de FilleMapping dans la MSDN


---------------
Le Tyran
Reply

Marsh Posté le 28-07-2003 à 17:00:49    

Citation :

le fichier est assez petit (64 octets)

Bah tu le lis dans un buffer et ton truc est fait, j'vois pas pkoi tu veux te casser la tête toi :/

Reply

Marsh Posté le 28-07-2003 à 17:28:05    

Citation :

SENDFILE(2)         Linux Programmer's Manual         SENDFILE(2)
 
NAME
       sendfile - transfer data between file descriptors
 
SYNOPSIS
       #include <sys/sendfile.h>
 
       ssize_t  sendfile(int  out_fd,  int  in_fd, off_t *offset,
       size_t count);
 
DESCRIPTION
       This call copies data  between  one  file  descriptor  and
       another.   Either  or  both  of these file descriptors may
       refer to a socket (but see below).  in_fd should be a file
       descriptor  opened  for  reading  and  out_fd  should be a
       descriptor opened for writing.  offset is a pointer  to  a
       variable  holding  the  input  file  pointer position from
       which sendfile() will start reading data.  When sendfile()
       returns,  this  variable  will be set to the offset of the
       byte following the last byte that was read.  count is  the
       number of bytes to copy between file descriptors.
 
       Because this copying is done within the kernel, sendfile()
       does not need to spend time transferring data to and  from
       user space.


 
Voila ce que tu voulais, un appel système pour envoyer directement un fichier. Il faut juste passer sous Linux pour en profiter mais bon :D
 
J'ai entendu dire que certaines cartes réseau permettent avec cette fonction de transferer un fichier grace au DMA ie : sans aucune utilisation CPU.

Reply

Marsh Posté le 28-07-2003 à 17:36:31    

Ta fonction c'est du TCP lui il veut du UDP :heink:

Reply

Marsh Posté le 28-07-2003 à 18:14:22    

*Syl* a écrit :

Ta fonction c'est du TCP lui il veut du UDP :heink:  


 
Sa question est ambigue de toute façon : le FTP c'est du TCP.
 
PS : et de toute façon, comment veut-il faire ça avec de l'UDP et un minimum de CPU vu qu'il est obligé de s'écrire un protocole pour certifier que les packets arrivent et que ceux ci arrivent dans le bon ordre ?


Message édité par Kristoph le 28-07-2003 à 18:18:38
Reply

Marsh Posté le 28-07-2003 à 20:07:31    

le protocole tftp est implémentéau dessus de udp, mais c'est de la merde.
 
tu peux voir les specs complètes là:
 
http://rfc.sunsite.dk/rfc/rfc1350.html


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed