La fonction principale :
int main(int argc,char *argv[])
{
struct sockaddr_in adresse; /* Adresse du serveur distant */
char statut; /* Stocke le statut des primitives */
int s; /* Descripteur de la SOCKET */
/* Lecture des arguments de la commande */
analyseArguments(argc,argv);
/* Connection au serveur */
s=connexionServeur(machine,port);
if(s<0){ fprintf(stderr,"Erreur de connexion au serveur\n"); exit(-1); }
/* Boucle de communication avec le serveur */
while(1){
fd_set ens_lecture;
char tampon[MAX_TAMPON];
int taille;
FD_ZERO(&ens_lecture); FD_SET(0,&ens_lecture); FD_SET(s,&ens_lecture);
statut=select(s+1,&ens_lecture,NULL,NULL,NULL);
if(statut<0){perror("select"); exit(-1);}
if(FD_ISSET(0,&ens_lecture)){
if((taille=read(0,tampon,MAX_TAMPON))<=0) break;
if(write(s,tampon,taille)!=taille) break;
}
if(FD_ISSET(s,&ens_lecture)){
if((taille=read(s,tampon,MAX_TAMPON))<=0) break;
if(write(1,tampon,taille)!=taille) break;
}
}
}