From 0bfe14fcd4ccaf84d1c012d698c30ea929159255 Mon Sep 17 00:00:00 2001 From: Yohan Boujon Date: Fri, 13 Jan 2023 11:02:17 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20l'adresse=20ip=20et=20du=20port=20?= =?UTF-8?q?dans=20les=20param=C3=A8tres.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- header/puit.h | 2 +- header/source.h | 2 +- header/tsock.h | 4 +++- src/main.c | 32 ++++++++++++++++++-------------- src/puit.c | 2 +- src/source.c | 2 +- src/tsock.c | 13 +++++++++++-- 7 files changed, 36 insertions(+), 21 deletions(-) diff --git a/header/puit.h b/header/puit.h index 011aa47..e3180a1 100644 --- a/header/puit.h +++ b/header/puit.h @@ -2,7 +2,7 @@ #define HEADER_PUIT #include "tsock.h" -int launchPuit(int nombreMessage); +int launchPuit(int nombreMessage,int isTCP); int receiveMultipleData(int nombreMessages, int tailleMessage, int sock, struct sockaddr_in socketStruct); #endif \ No newline at end of file diff --git a/header/source.h b/header/source.h index c499452..5c544a4 100644 --- a/header/source.h +++ b/header/source.h @@ -2,7 +2,7 @@ #define HEADER_SOURCE #include "tsock.h" -int launchSource(int nombreMessage); +int launchSource(int nombreMessage, int isTCP); int sendMultipleData(int nombreMessages, int tailleMessage, int sock, struct sockaddr_in socketStruct); #endif \ No newline at end of file diff --git a/header/tsock.h b/header/tsock.h index de8238d..59708e0 100644 --- a/header/tsock.h +++ b/header/tsock.h @@ -10,10 +10,12 @@ #include #include #include +#include void setNbMessage(int * nb, int source); -void printInfo(int nb, int source); +void printInfo(int nb, int source, int portNumber, char ipAddress[]); void initStructSocket(struct sockaddr_in *socketServerTemp, int source); +void getNonOtpArgs(char ** argv, int argc, int portNumber, char * ipAddress[]); #define PORT_NUM 9000 diff --git a/src/main.c b/src/main.c index e999db0..565f29f 100644 --- a/src/main.c +++ b/src/main.c @@ -4,23 +4,23 @@ int main (int argc, char **argv) { - int c; + char usageChar[30]="usage: cmd [-p|-s][-n ##]\n"; + char *ipAddress; extern char *optarg; extern int optind; - int nb_message = -1; /* Nb de messages à envoyer ou à recevoir, par défaut : 10 en émission, infini en réception */ - int source = -1 ; /* 0=puits, 1=source */ - while ((c = getopt(argc, argv, "pn:s")) != -1) { + int source = -1, nb_message = -1, c, tcp=1, port=9000; /* Nb de messages à envoyer ou à recevoir, par défaut : 10 en émission, infini en réception */ + while ((c = getopt(argc, argv, "pn:su")) != -1) { switch (c) { case 'p': if (source != -1) { - printf("usage: cmd [-p|-s][-n ##]\n"); + printf(usageChar); exit(1); } source = 0; break; case 's': if (source != -1) { - printf("usage: cmd [-p|-s][-n ##]\n"); + printf(usageChar); exit(1) ; } source = 1; @@ -28,28 +28,32 @@ int main (int argc, char **argv) case 'n': nb_message = atoi(optarg); break; + case 'u': + tcp=0; + break; default: - printf("usage: cmd [-p|-s][-n ##]\n"); + printf(usageChar); break; } } - if (source == -1) { - printf("usage: cmd [-p|-s][-n ##]\n"); + printf("-p|-s non present !\n"); + printf(usageChar); exit(1); } + getNonOtpArgs(argv, argc, port, &ipAddress); setNbMessage(&nb_message,source); - printInfo(nb_message,source); + printInfo(nb_message,source,port,ipAddress); if(source) { - printf("Source : %d\n",nb_message); - launchSource(nb_message); + //printf("Source : %d\n",nb_message); + launchSource(nb_message,tcp); } else { - printf("Puit : %d\n",nb_message); - launchPuit(nb_message); + //printf("Puit : %d\n",nb_message); + launchPuit(nb_message,tcp); } } \ No newline at end of file diff --git a/src/puit.c b/src/puit.c index 4f9d41c..bcaafa6 100644 --- a/src/puit.c +++ b/src/puit.c @@ -1,6 +1,6 @@ #include "../header/puit.h" -int launchPuit(int nombreMessage) +int launchPuit(int nombreMessage,int isTCP) { int sock; struct sockaddr_in socketPuit; diff --git a/src/source.c b/src/source.c index 0f848c1..59d29c3 100644 --- a/src/source.c +++ b/src/source.c @@ -1,6 +1,6 @@ #include "../header/source.h" -int launchSource(int nombreMessage) +int launchSource(int nombreMessage, int isTCP) { int sock; struct sockaddr_in socketSource; diff --git a/src/tsock.c b/src/tsock.c index ec6f13a..935fb99 100644 --- a/src/tsock.c +++ b/src/tsock.c @@ -8,16 +8,17 @@ void setNbMessage(int * nb, int source) } } -void printInfo(int nb, int source) +void printInfo(int nb, int source, int portNumber, char ipAddress[]) { if(source) { - printf("tsock lance en mode source, nombre de tampons à envoyer : %d\n", nb); + printf("tsock lance en mode source, nombre de tampons à envoyer : %d\nPort : %d\t Adresse IP : %s\n", nb, portNumber, ipAddress); } else { printf("tsock lance en mode puit, nombre de tampons à recevoir :"); nb != -1 ? printf("%d\n", nb) : printf("infini\n"); + printf("Port : %d\n",portNumber); } } @@ -41,4 +42,12 @@ void initStructSocket(struct sockaddr_in *socketTempStruct, int source) socketTempStruct->sin_addr.s_addr=INADDR_ANY; } +} + +void getNonOtpArgs(char ** argv, int argc, int portNumber, char ** ipAddress) +{ + portNumber = atoi(argv[argc-2]); + *ipAddress = NULL; + *ipAddress = (char *)malloc(sizeof(argv[argc-1])); + strcpy(*ipAddress,argv[argc-1]); } \ No newline at end of file