diff --git a/header/tsock.h b/header/tsock.h index 041684f..0608e6c 100644 --- a/header/tsock.h +++ b/header/tsock.h @@ -27,6 +27,6 @@ int convertion(int nbr,char *numbuffer); int gestionOffset(char *actualMessage,int encadrementHaut,int encadrementBas,int nbr); int testProtocol(void); -int recuperationParam(char * msgParam); +int recuperationParam(char * msgParam, int * messageOrPram, int * numEmetteurParam, int * numRecepeteurParam, int * numTailleMessageParam, int * nbMessageParam); int int2String(char *msgParam, int offset); #endif \ No newline at end of file diff --git a/src/puit.c b/src/puit.c index 934498d..b72f668 100644 --- a/src/puit.c +++ b/src/puit.c @@ -1,4 +1,5 @@ #include "../header/puit.h" +#include "../header/bal.h" int launchPuit(int nombreMessage,int tailleMessage,int isTCP,int port,char * ipAddress,int isBAL) { @@ -36,8 +37,10 @@ int initSocket(int socketType, struct sockaddr_in * socketStruct, int port, char int modeBoiteAuxLettres(struct sockaddr_in socketStruct, int socketType, int port, char * ipAddress) { - char messageRecu[30+1]; - int n, i=1, longueurRecu = sizeof(socketStruct),sock,oldSock; + struct listeBAL boiteAuxLettres = initListeBAL(); + char paramRecu[16]; + int n, longueurRecu = sizeof(socketStruct),sock,oldSock; + int param,emetteur,recepteur,tailleMessage,nbMessage; while(1) { n=1; @@ -46,12 +49,14 @@ int modeBoiteAuxLettres(struct sockaddr_in socketStruct, int socketType, int por sock = accept(oldSock,(struct sockaddr *)&socketStruct,(socklen_t * restrict)&longueurRecu); while(n>0) { - n = read(sock,messageRecu,30); - messageRecu[n] = '\0'; + n = read(sock,paramRecu,16); + recuperationParam(paramRecu,¶m,&emetteur,&recepteur,&tailleMessage,&nbMessage); + char * messageRecu = malloc(sizeof(char)*tailleMessage); + n = read(sock,messageRecu,tailleMessage); if(n>0) { - printf("Puit\tReception n°%d (%d) :\t[%s]\n",i,n,messageRecu); - i++; + nouveauMessage(&boiteAuxLettres,emetteur,recepteur,messageRecu); + afficheListeBAL(boiteAuxLettres); } } close(sock); diff --git a/src/source.c b/src/source.c index e0723f0..65327ea 100644 --- a/src/source.c +++ b/src/source.c @@ -81,6 +81,7 @@ void modeEmetteur(int emetteur,int nombreMessage,int tailleMessage,int sock,stru actualMessage = formatTextMessage(sendingMessage,tailleMessage+1); longueurEmis = write(sock,actualMessage,tailleMessage+1); printAndVerif(actualMessage,tailleMessage+1,longueurEmis,i); + messageChar>='z'?messageChar='a':messageChar++; } } diff --git a/src/tsock.c b/src/tsock.c index 8d25e49..21a8333 100644 --- a/src/tsock.c +++ b/src/tsock.c @@ -89,35 +89,18 @@ int testProtocol(void) msg2=formatTextMessage("aaaaaa",6); printf("%s\n",msg2); - recuperationParam(msg); + //recuperationParam(msg); return 0; } -int recuperationParam(char * msgParam) +int recuperationParam(char * msgParam, int * messageOrPram, int * numEmetteurParam, int * numRecepeteurParam, int * numTailleMessageParam, int * nbMessageParam) { - - int messageOrPram; - int numEmetteurParam; - int numRecepeteurParam; - int numTailleMessageParam; - int nbMessageParam; - printf("Message param %s\n",msgParam); - messageOrPram=msgParam[0]-0x30; - printf("messageOrPram = %d \n",messageOrPram); - - numEmetteurParam = int2String(msgParam,1); - printf("Param Emetteur = %d\n",numEmetteurParam); - - numRecepeteurParam= int2String(msgParam,5); - printf("Param numRecepeteurParam = %d\n",numRecepeteurParam); - - numTailleMessageParam= int2String(msgParam,9); - printf("Param numTailleMessageParam = %d\n",numTailleMessageParam); - - nbMessageParam=int2String(msgParam,13); - printf("Param nbMessageParam = %d\n",nbMessageParam); - + *messageOrPram=msgParam[0]-0x30; + *numEmetteurParam = int2String(msgParam,1); + *numRecepeteurParam= int2String(msgParam,5); + *numTailleMessageParam= int2String(msgParam,9); + *nbMessageParam=int2String(msgParam,13); return 0; }