diff --git a/main.c b/main.c new file mode 100644 index 0000000..b5c2637 --- /dev/null +++ b/main.c @@ -0,0 +1,51 @@ +#include "tsock.h" + +int main (int argc, char **argv) +{ + int c; + 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) { + switch (c) { + case 'p': + if (source != -1) { + printf("usage: cmd [-p|-s][-n ##]\n"); + exit(1); + } + source = 0; + break; + case 's': + if (source != -1) { + printf("usage: cmd [-p|-s][-n ##]\n"); + exit(1) ; + } + source = 1; + break; + case 'n': + nb_message = atoi(optarg); + break; + default: + printf("usage: cmd [-p|-s][-n ##]\n"); + break; + } + } + + if (source == -1) { + printf("usage: cmd [-p|-s][-n ##]\n"); + exit(1); + } + + setNbMessage(&nb_message,source); + printInfo(nb_message,source); + + if(source) + { + printf("Source : %d\n",nb_message); + } + else + { + printf("Puit : %d\n",nb_message); + } +} \ No newline at end of file diff --git a/puit b/puit deleted file mode 100755 index 842cde3..0000000 Binary files a/puit and /dev/null differ diff --git a/source b/source index 358ccba..3468d3f 100755 Binary files a/source and b/source differ diff --git a/source.c b/source.c index 45e5e4e..84ee9f9 100644 --- a/source.c +++ b/source.c @@ -15,7 +15,7 @@ void initSocket(); int sock; int lg_emis; struct hostent *hp; -struct sockaddr_in socketServer; +struct sockaddr_in socketClient; int main(void) { @@ -24,9 +24,9 @@ int main(void) printf("échec création du socket\n"); exit(1); } - memset(&socketServer, 0, sizeof(socketServer)); + memset(&socketClient, 0, sizeof(socketClient)); initSocket(); - lg_emis=sendto(sock, "aaaaa", 6, 0, (struct sockaddr*)&socketServer, sizeof(socketServer)); + lg_emis=sendto(sock, "aaaaa", 6, 0, (struct sockaddr*)&socketClient, sizeof(socketClient)); printf("lgemis = %d\n",lg_emis); close(sock); return 0; @@ -34,12 +34,12 @@ int main(void) void initSocket() { - socketServer.sin_family=AF_INET; - socketServer.sin_port=htons(PORT_NUM); + socketClient.sin_family=AF_INET; + socketClient.sin_port=htons(PORT_NUM); if((hp = gethostbyname("localhost")) == NULL) { printf("erreur gethostbyname\n"); exit(1); } - memcpy((char*)&(socketServer.sin_addr.s_addr),hp->h_addr_list[0],hp->h_length); + memcpy((char*)&(socketClient.sin_addr.s_addr),hp->h_addr_list[0],hp->h_length); } \ No newline at end of file diff --git a/tsock.c b/tsock.c new file mode 100644 index 0000000..9db2872 --- /dev/null +++ b/tsock.c @@ -0,0 +1,22 @@ +#include "tsock.h" + +void setNbMessage(int * nb, int source) +{ + if((*nb == -1) && (source)) + { + *nb = 10; + } +} + +void printInfo(int nb, int source) +{ + if(source) + { + printf("tsock lance en mode source, nombre de tampons à envoyer : %d\n", nb); + } + else + { + printf("tsock lance en mode puit, nombre de tampons à recevoir :"); + nb != -1 ? printf("%d\n", nb) : printf("infini\n"); + } +} \ No newline at end of file diff --git a/tsock.h b/tsock.h new file mode 100644 index 0000000..da163c4 --- /dev/null +++ b/tsock.h @@ -0,0 +1,17 @@ +#ifndef HEADER_TSOCK +#define HEADER_TSOCK + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void setNbMessage(int * nb, int source); +void printInfo(int nb, int source); + +#endif \ No newline at end of file