L'envoi de fichier par socket en c

hanane7575 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'ai deja reussi de programmer une socket client/serveur qui permet de transfer des message
mais maitenant je veut transfer une fichier.txt " on peut dire de trame " a l'aide cet socket qui on deja programmer
mais ma connaisance un peu limiter surtout en c

plaise aide moi pour faire une transmission de fichier par une socket
A voir également:

3 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
Il suffit d'ouvrir le fichier, de le lire et de la transmettre, comme un message.
0
hanane7575 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
oui je sais mais comment faire ca ici le problem

voila le code de cote sclient

include <sys/un.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>





main()
{int sd,lg; char msg[20],rep[20];

struct sockaddr_in adresse;

sd=socket(AF_INET, SOCK_STREAM, 0);

if (sd==-1)
{printf ("erreur de creation");
exit(0);}

adresse.sin_family = AF_INET;
adresse.sin_port=1230;
adresse.sin_addr.s_addr = INADDR_ANY;
lg=sizeof(adresse);
if(connect(sd,(struct sockaddr_in *) &adresse,sizeof(adresse))<0)
{perror("ereur");
exit(0);}
strcpy(msg,"");
while(strcmp(msg,"fin")!=0)
{

read(sd,msg,sizeof(msg));
puts(msg);
printf("\ntapez la reponse : ");
gets(rep);
write(sd,rep,sizeof(rep));

}printf("\n déconexion\n"); }


***********************

cote serveur

#include <sys/un.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>









struct sockaddr_un ;

main()

{int sd,ss,p1=1,p2=2,p; char msg[20],rep[20];



struct sockaddr_in adresse;



sd=socket(AF_INET, SOCK_STREAM, 0);



if (sd==-1)

{printf ("erreur de creation");

exit(0);}



adresse.sin_family = AF_INET;

adresse.sin_port=1230;

adresse.sin_addr.s_addr = INADDR_ANY;



if((bind (sd, (struct sockaddr_in *) &adresse, sizeof(adresse)))==-1)



{printf("ereur bind");exit(0);}

listen(sd,2);



strcpy(msg," ");

printf("attend que un client se connecte ...\n");

while(1)

{

ss=accept(sd,0,0);

if(fork()==0)

{
p=getpid();

while(strcmp(msg,"fin")!=0)


{printf("taper message: ");

gets(msg);

write(ss,msg,sizeof(msg));

read(ss,rep,sizeof(rep));

puts(rep);}
printf("\nattend que un client se connecte ...\n");
}}}




********************
comment tradiure ce code la envoi et recevoir de fichiet.txt
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Comme je te l'ai dit, tu ouvre le fichier, le lit et l'envoie. Il suffit d'incorporer ça dans ta boucle en virant la gestion des entrées sorties standards.
0