refactore(v3): message output

This commit is contained in:
Paul Alnet 2024-03-07 10:23:16 +01:00
parent 17a1935a54
commit 7169fd369d

View file

@ -17,9 +17,8 @@
#include <stdio.h> #include <stdio.h>
/* pour la gestion des erreurs */ /* pour la gestion des erreurs */
#include <errno.h> #include <errno.h>
#define BASE_SIZE 10
// Remplit le message de lg caractères motif
void construire_message(char* message, char motif, int lg); void construire_message(char* message, char motif, int lg);
// Affichage distinct entre envoi et reception pour une facilité d'utilisation // Affichage distinct entre envoi et reception pour une facilité d'utilisation
@ -27,8 +26,12 @@ void afficher_message_envoi(char *message, int lg, int numero_envoi);
void afficher_message_reception(char *message, int lg, int numero_envoi); void afficher_message_reception(char *message, int lg, int numero_envoi);
// Permet de compter le nombre de digits d'un nombre, utile pour l'affichage [--143 ...] // Permet de compter le nombre de digits d'un nombre, utile pour l'affichage [--143 ...]
// (base 10)
int count_digits(int lg); int count_digits(int lg);
// Affiche l'usage de l'outil
void print_usage();
int main (int argc, char **argv) int main (int argc, char **argv)
{ {
@ -44,7 +47,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;
@ -52,7 +55,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;
@ -84,7 +87,7 @@ int main (int argc, char **argv)
break; break;
default: default:
printf("usage: cmd [-p|-s][-n ##]\n"); print_usage();
break; break;
} }
} }
@ -100,12 +103,12 @@ int main (int argc, char **argv)
lg=30; lg=30;
} }
//Allocation du message, il est de la taille donnée en paramètre // Allocation du message, il est de la taille donnée en paramètre
char* message = malloc(lg * sizeof(char)); char* message = malloc(lg * sizeof(char));
if (source == -1) { if (source == -1) {
printf("usage: cmd [-p|-s][-n ##]\n"); print_usage();
exit(1) ; exit(1) ;
} }
@ -133,15 +136,12 @@ int main (int argc, char **argv)
} }
// Communnication through UDP messages // Communnication through UDP datagrams
if (udp==1){ if (udp==1){
// Creation du socket local // Creation du socket local
int sock= socket(AF_INET,SOCK_DGRAM,0); int sock= socket(AF_INET,SOCK_DGRAM,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;
@ -172,14 +172,8 @@ int main (int argc, char **argv)
afficher_message_envoi(message,lg,i+1); afficher_message_envoi(message,lg,i+1);
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
// Creation de l'adresse du socket local
}
else {
// 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);
@ -205,22 +199,12 @@ int main (int argc, char **argv)
// Afficher notre seule et unique triste message // Afficher notre seule et unique triste message
afficher_message_reception(message, lg, k); afficher_message_reception(message, lg, k);
} }
} }
} } 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;
@ -261,13 +245,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);
@ -292,7 +270,7 @@ int main (int argc, char **argv)
exit(1); exit(1);
} }
int sock_bis; int sock_bis; // Socket correspondant à la connexion TCP initiée par la source
// Accept a single connection on the main thread // Accept a single connection on the main thread
if ((sock_bis = accept( sock, (struct sockaddr *)&adr_locale, &longueur_adr_locale)) == -1){ if ((sock_bis = accept( sock, (struct sockaddr *)&adr_locale, &longueur_adr_locale)) == -1){
printf("échec du accept\n") ; printf("échec du accept\n") ;
@ -358,13 +336,11 @@ void afficher_message_reception(char *message, int lg, int numero_envoi) {
} }
int count_digits(int lg) { int count_digits(int lg) {
int retour; int retour;
if (!lg){ if (!lg){
retour=1; retour=1;
} } else {
else {
retour=0; retour=0;
while (lg > 0) { while (lg > 0) {
lg/=10; lg/=10;
@ -374,3 +350,7 @@ int count_digits(int lg) {
return retour; return retour;
} }
void print_usage() {
printf("usage: cmd [-p|-s][-n ##]\n");
}