From 1aff7d3ee6374d8e1665b32dc8c3811c25bc648a Mon Sep 17 00:00:00 2001 From: Yohan Boujon Date: Wed, 18 Jan 2023 10:27:17 +0100 Subject: [PATCH] mode emetteur fonctionnel. --- header/source.h | 5 +++- src/main.c | 2 +- src/source.c | 69 +++++++++++++++++++++++++++++++++++++------------ 3 files changed, 57 insertions(+), 19 deletions(-) diff --git a/header/source.h b/header/source.h index 18b2b47..d74f1a8 100644 --- a/header/source.h +++ b/header/source.h @@ -2,7 +2,10 @@ #define HEADER_SOURCE #include "tsock.h" -int launchSource(int nombreMessage,int tailleMessage,int isTCP,int port,char * ipAddress); +int launchSource(int nombreMessage,int tailleMessage,int isTCP,int port,char * ipAddress,int emetteur,int recepteur); int sendMultipleData(int nombreMessages, int tailleMessage, int sock, struct sockaddr_in * socketStruct, int sizeSocketStruct, int isTCP); +void connectTCP(int sock, struct sockaddr_in socketStruct, int tailleSocket); +void modeEmetteur(int emetteur,int nombreMessage,int tailleMessage,int sock,struct sockaddr_in * socketStruct,int tailleSocketStruct); +void printAndVerif(char * sendingMessage,int tailleMessage,int longueurEmis, int count); #endif \ No newline at end of file diff --git a/src/main.c b/src/main.c index 3644ef5..e712251 100644 --- a/src/main.c +++ b/src/main.c @@ -94,7 +94,7 @@ int main (int argc, char **argv) if(source) { //printf("Source : %d\n",nb_message); - launchSource(nb_message,tailleMessage,tcp,port,ipAddress); + launchSource(nb_message,tailleMessage,tcp,port,ipAddress,emetteur,recepteur); } else { diff --git a/src/source.c b/src/source.c index d1774d8..e0723f0 100644 --- a/src/source.c +++ b/src/source.c @@ -1,6 +1,6 @@ #include "../header/source.h" -int launchSource(int nombreMessage,int tailleMessage,int isTCP,int port,char * ipAddress) +int launchSource(int nombreMessage,int tailleMessage,int isTCP,int port,char * ipAddress,int emetteur,int recepteur) { struct sockaddr_in socketSource; int sock,socketType; @@ -12,14 +12,21 @@ int launchSource(int nombreMessage,int tailleMessage,int isTCP,int port,char * i exit(EXIT_FAILURE); } initStructSocket(&socketSource,1,port,ipAddress); + if(recepteur != -1) + { + printf("Mode Recepteur, recois : %d\n",recepteur); + return 0; + } + if(emetteur != -1) + { + printf("Mode Emetteur, envois : %d\n",emetteur); + connectTCP(sock,socketSource,sizeof(socketSource)); + modeEmetteur(emetteur,nombreMessage,tailleMessage,sock,&socketSource,sizeof(socketSource)); + return 0; + } if(isTCP) { - int connectStatus; - if((connectStatus = connect(sock,(struct sockaddr *)&socketSource,(socklen_t)sizeof(socketSource))) == -1) - { - perror("[tsock] : fonction connect() : echec connexion\n"); - exit(EXIT_FAILURE); - }; + connectTCP(sock,socketSource,sizeof(socketSource)); sendMultipleData(nombreMessage,tailleMessage,sock,&socketSource,sizeof(socketSource),isTCP); } else @@ -30,11 +37,19 @@ int launchSource(int nombreMessage,int tailleMessage,int isTCP,int port,char * i return 0; } +void connectTCP(int sock, struct sockaddr_in socketStruct, int tailleSocket) +{ + if(connect(sock,(struct sockaddr *)&socketStruct,(socklen_t)tailleSocket) == -1) + { + perror("[tsock] : fonction connect() : echec connexion\n"); + exit(EXIT_FAILURE); + }; +} + int sendMultipleData(int nombreMessages, int tailleMessage, int sock, struct sockaddr_in * socketStruct, int sizeSocketStruct, int isTCP) { int longueurEmis; - char messageChar='a'; - char sendingMessage[tailleMessage]; + char sendingMessage[tailleMessage],messageChar='a'; for(int i=0;i='z'?messageChar='a':messageChar++; } return 0; +} + +void modeEmetteur(int emetteur,int nombreMessage,int tailleMessage,int sock,struct sockaddr_in * socketStruct,int tailleSocketStruct) +{ + int longueurEmis; + char sendingMessage[tailleMessage],*paramMessage,*actualMessage,messageChar='a'; + for(int i=0;i