cs_biyiha
Messages postés13Date d'inscriptiondimanche 18 octobre 2009StatutMembreDernière intervention18 décembre 2009 18 déc. 2009 à 11:45
salut , j'ai un problème avec mes deux programmes , ils se compile bien mais au niveau de l'excution avec le gcc c'est là qu'il y'a pblème
je vous en voi mes programmes pour que vous voyez où il y'a pblème
merci d'avnce de bien vouloir m'aidez::
prog client ftp
/********************** client ********************************/
#include"socin.h"
#define port 2000
#define h_addr h_addr_list[0]
/***************************************serveur*************************************/
#include "socin.h"
//#include "echo_ser.h"
#define port 2000
#define h_addr h_addr_list[0]
int sock_id;
void transfert();
int main()
{int cc;
char nom[50];
struct hostent *info_loc;
struct sockaddr_in local_ad;
cc=gethostname(nom,sizeof(nom));
if (cc==-1) {perror("gethostname");exit(1);}
printf("le nom de la machine: %s\n" ,nom);
info_loc=gethostbyname(nom);
if (info_loc==NULL) {perror("gethostbyname");exit(1);}
/*struct construction */
local_ad.sin_port=htons(port);
local_ad.sin_family=AF_INET;
local_ad.sin_addr.s_addr = htonl(INADDR_ANY);
/* socket creation and linking*/
sock_id=socket(AF_INET,SOCK_DGRAM,0);
cc=bind(sock_id,(struct sockaddr *)&local_ad,sizeof(local_ad));
if (cc==-1){
perror("l'attachement de la socket");
close(sock_id);
exit(1);
}
else {printf("socket attachement fait:\n");};
printf("serveur en attente sur la socket:%d\n", sock_id);
transfert();
return (0);}
#define SIZE_BLOCK 1024
// FONCTION DE RECEPTION DU NOM DE FICHIER
void reception(int sock,char* name,int taille, struct sockaddr*cli)
{
FILE*fic;
int recept=0;
int nb;
char* buffer;
buffer=(char*)malloc(SIZE_BLOCK);
//int lg=sizeof(struct sockaddr) ;
fic=fopen(name,"wb");
while(taille!=recept)
{
nb=recvfrom(sock,buffer,SIZE_BLOCK,0,cli,sizeof(*cli));
fwrite(fic,1,nb,buffer);
recept=0;
fclose(fic);
}
}
cs_biyiha
Messages postés13Date d'inscriptiondimanche 18 octobre 2009StatutMembreDernière intervention18 décembre 2009 18 déc. 2009 à 11:47
prog serveur au lieu de recept=0; j'ai remplacé recept=nb;
/***************************************serveur*************************************/
#include "socin.h"
//#include "echo_ser.h"
#define port 2000
#define h_addr h_addr_list[0]
int sock_id;
void transfert();
int main()
{int cc;
char nom[50];
struct hostent *info_loc;
struct sockaddr_in local_ad;
cc=gethostname(nom,sizeof(nom));
if (cc==-1) {perror("gethostname");exit(1);}
printf("le nom de la machine: %s\n" ,nom);
info_loc=gethostbyname(nom);
if (info_loc==NULL) {perror("gethostbyname");exit(1);}
/*struct construction */
local_ad.sin_port=htons(port);
local_ad.sin_family=AF_INET;
local_ad.sin_addr.s_addr = htonl(INADDR_ANY);
/* socket creation and linking*/
sock_id=socket(AF_INET,SOCK_DGRAM,0);
cc=bind(sock_id,(struct sockaddr *)&local_ad,sizeof(local_ad));
if (cc==-1){
perror("l'attachement de la socket");
close(sock_id);
exit(1);
}
else {printf("socket attachement fait:\n");};
printf("serveur en attente sur la socket:%d\n", sock_id);
transfert();
return (0);}
#define SIZE_BLOCK 1024
// FONCTION DE RECEPTION DU NOM DE FICHIER
void reception(int sock,char* name,int taille, struct sockaddr*cli)
{
FILE*fic;
int recept=0;
int nb;
char* buffer;
buffer=(char*)malloc(SIZE_BLOCK);
//int lg=sizeof(struct sockaddr) ;
fic=fopen(name,"wb");
while(taille!=recept)
{
nb=recvfrom(sock,buffer,SIZE_BLOCK,0,cli,sizeof(*cli));
fwrite(fic,1,nb,buffer);
recept=nb;
fclose(fic);
}
}