refactore(v3): message output
This commit is contained in:
parent
17a1935a54
commit
7169fd369d
1 changed files with 21 additions and 41 deletions
62
tsock_v3.c
62
tsock_v3.c
|
@ -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");
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue