feat(v2): usage message

This commit is contained in:
Paul Alnet 2024-03-07 11:14:44 +01:00
parent a99528d35d
commit 2e156fef2f

View file

@ -19,23 +19,11 @@
#include <errno.h> #include <errno.h>
#define BASE_SIZE 10 #define BASE_SIZE 10
void construire_message(char *message, char motif, int lg) { void construire_message(char *message, char motif, int lg);
int i; void afficher_message(char *message, int lg);
for (i=0;i<lg;i++) message[i] = motif; void print_usage();
}
void afficher_message(char *message, int lg) { int main (int argc, char **argv) {
int i;
printf("message reçu : ");
for (i=0;i<lg;i++){
printf("%c", message[i]);
}
printf("\n");
}
int main (int argc, char **argv)
{
int c; int c;
extern char *optarg; extern char *optarg;
extern int optind; extern int optind;
@ -47,7 +35,7 @@ int main (int argc, char **argv)
switch (c) { switch (c) {
case 'p': case 'p':
if (source == 1) { if (source == 1) {
printf("usage: cmd [-p|-s][-n ##]\n"); print_usage();
exit(1); exit(1);
} }
source = 0; source = 0;
@ -55,7 +43,7 @@ int main (int argc, char **argv)
case 's': case 's':
if (source == 0) { if (source == 0) {
printf("usage: cmd [-p|-s][-n ##]\n"); print_usage();
exit(1) ; exit(1) ;
} }
source = 1; source = 1;
@ -70,8 +58,8 @@ int main (int argc, char **argv)
break; break;
default: default:
printf("usage: cmd [-p|-s][-n ##]\n"); print_usage();
break; exit(1);
} }
} }
@ -84,7 +72,7 @@ int main (int argc, char **argv)
char* message = malloc(BASE_SIZE * sizeof(char)); char* message = malloc(BASE_SIZE * sizeof(char));
if (source == -1) { if (source == -1) {
printf("usage: cmd [-p|-s][-n ##]\n"); print_usage();
exit(1) ; exit(1) ;
} }
@ -94,7 +82,6 @@ int main (int argc, char **argv)
} else printf("PUITS:"); } else printf("PUITS:");
if (nb_message != -1) { if (nb_message != -1) {
if (source == 1) if (source == 1)
printf("nb de tampons à envoyer : %d\n", nb_message); printf("nb de tampons à envoyer : %d\n", nb_message);
@ -106,7 +93,6 @@ int main (int argc, char **argv)
printf("nb de tampons à envoyer = 10 par défaut\n"); printf("nb de tampons à envoyer = 10 par défaut\n");
} else } else
printf("nb de tampons à envoyer = infini\n"); printf("nb de tampons à envoyer = infini\n");
} }
if (udp==1){ if (udp==1){
@ -147,13 +133,7 @@ int main (int argc, char **argv)
sendto(sock,message,longueur_message,0,(struct sockaddr*)&adr_dest,longueur_adr_dest); sendto(sock,message,longueur_message,0,(struct sockaddr*)&adr_dest,longueur_adr_dest);
} }
} else { // UDP & puit
}
else {
// Creation de l'adresse du socket distant // Creation de l'adresse du socket distant
struct sockaddr_in adr_locale; struct sockaddr_in adr_locale;
int longueur_adr_locale = sizeof(adr_locale); int longueur_adr_locale = sizeof(adr_locale);
@ -179,22 +159,12 @@ int main (int argc, char **argv)
// Afficher notre seule et unique triste message // Afficher notre seule et unique triste message
afficher_message(message, longueur_message); afficher_message(message, longueur_message);
} }
} }
} } else { // TCP
else{
// Creation du socket local // Creation du socket local
int sock= socket(AF_INET,SOCK_STREAM,0); int sock= socket(AF_INET,SOCK_STREAM,0);
if (source==1) { if (source==1) {
// Creation de l'adresse du socket distant // Creation de l'adresse du socket distant
struct hostent *hp ; struct hostent *hp ;
struct sockaddr_in adr_dest; struct sockaddr_in adr_dest;
@ -235,13 +205,7 @@ int main (int argc, char **argv)
// Close socket to avoid dangling connections // Close socket to avoid dangling connections
close(sock); close(sock);
} else { // TCP & puit
}
else {
// Creation de l'adresse du socket local // Creation de l'adresse du socket local
struct sockaddr_in adr_locale; struct sockaddr_in adr_locale;
socklen_t longueur_adr_locale = sizeof(adr_locale); socklen_t longueur_adr_locale = sizeof(adr_locale);
@ -278,13 +242,31 @@ int main (int argc, char **argv)
} }
close(sock_bis); close(sock_bis);
close(sock); close(sock);
} }
} }
exit(0); exit(0);
} }
void construire_message(char *message, char motif, int lg) {
int i;
for (i=0;i<lg;i++) message[i] = motif;
}
void afficher_message(char *message, int lg) {
int i;
printf("message reçu : ");
for (i=0;i<lg;i++){
printf("%c", message[i]);
}
printf("\n");
}
void print_usage() {
printf("usage: tsock_v2 [-psu] [host] <port>\n");
printf("parameters: host With -s, address of the host to connect to. Required with -s.\n");
printf(" port Port to connect or bind to. Required.\n");
printf("options: -p Runs a TCP/UDP sink. Incompatible with -s.\n");
printf(" -s Runs a TCP/UDP faucet. Incompatible with -p.\n");
printf(" -u Use UDP instead of TCP.\n");
}