wip(v3): actual wip

This commit is contained in:
Clement Lacau 2024-03-01 18:21:47 +01:00
parent 10a3420bf6
commit 7feeb4b611

View file

@ -42,8 +42,9 @@ int main (int argc, char **argv)
int nb_message = -1; /* Nb de messages à envoyer ou à recevoir, par défaut : 10 en émission, infini en réception */ 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 */ int source = -1 ; /* 0=puits, 1=source */
int udp=0; /* 0=TCP, 1=UDP */ int udp=0; /* 0=TCP, 1=UDP */
int lg=-1;
while ((c = getopt(argc, argv, "pn:su")) != -1) {
while ((c = getopt(argc, argv, "pn:sul:")) != -1) {
switch (c) { switch (c) {
case 'p': case 'p':
if (source == 1) { if (source == 1) {
@ -63,11 +64,27 @@ int main (int argc, char **argv)
case 'n': case 'n':
nb_message = atoi(optarg); nb_message = atoi(optarg);
//Indice packet limite to 5 characters
if(n >= 100000) {
printf("Too many packets");
exit(1);
}
break; break;
case 'u': case 'u':
udp=1; udp=1;
break; break;
case 'l':
lg=atoi(optarg);
// A TCP packet is roughly 1500 bytes. We allow for some overhead.
// We provide an MTU of 1400 bytes.
if(lg >= 1400) {
printf("Messages too long");
exit(1);
}
break;
default: default:
printf("usage: cmd [-p|-s][-n ##]\n"); printf("usage: cmd [-p|-s][-n ##]\n");
@ -80,8 +97,14 @@ int main (int argc, char **argv)
// Recuperation du port // Recuperation du port
int port=atoi(argv[argc-1]); int port=atoi(argv[argc-1]);
port = htons(port); port = htons(port);
char* message = malloc(BASE_SIZE * sizeof(char)); if (lg == -1) {
lg=30;
}
char* message = malloc(lg * sizeof(char));
if (source == -1) { if (source == -1) {
printf("usage: cmd [-p|-s][-n ##]\n"); printf("usage: cmd [-p|-s][-n ##]\n");
@ -111,6 +134,7 @@ int main (int argc, char **argv)
} }
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);
@ -124,7 +148,7 @@ int main (int argc, char **argv)
struct sockaddr_in adr_dest; struct sockaddr_in adr_dest;
int longueur_adr_dest = sizeof(adr_dest); int longueur_adr_dest = sizeof(adr_dest);
int longueur_message = BASE_SIZE; int longueur_message = lg;
memset((char *)& adr_dest, 0, sizeof(adr_dest)) ; memset((char *)& adr_dest, 0, sizeof(adr_dest)) ;
@ -143,7 +167,7 @@ int main (int argc, char **argv)
for (int i = 0; i < nb_message; i++) { for (int i = 0; i < nb_message; i++) {
// Construction du message // Construction du message
construire_message(message, 'a' + (i % 26), BASE_SIZE); construire_message(message, 'a' + (i % 26), lg);
// Envoi du message // Envoi du message
@ -160,7 +184,7 @@ int main (int argc, char **argv)
struct sockaddr_in adr_locale; struct sockaddr_in adr_locale;
int longueur_adr_locale = sizeof(adr_locale); int longueur_adr_locale = sizeof(adr_locale);
int longueur_message = BASE_SIZE; int longueur_message = lg;
memset((char *)& adr_locale, 0, sizeof(adr_locale)) ; memset((char *)& adr_locale, 0, sizeof(adr_locale)) ;
@ -202,7 +226,7 @@ int main (int argc, char **argv)
struct sockaddr_in adr_dest; struct sockaddr_in adr_dest;
int longueur_adr_dest = sizeof(adr_dest); int longueur_adr_dest = sizeof(adr_dest);
int longueur_message = BASE_SIZE; int longueur_message = lg;
memset((char *)& adr_dest, 0, sizeof(adr_dest)) ; memset((char *)& adr_dest, 0, sizeof(adr_dest)) ;
@ -229,7 +253,7 @@ int main (int argc, char **argv)
// Envoie des messages // Envoie des messages
for (int i = 0; i < nb_message; i++) { for (int i = 0; i < nb_message; i++) {
// Construction du message // Construction du message
construire_message(message, 'a' + (i % 26), BASE_SIZE); construire_message(message, 'a' + (i % 26), lg);
// Envoi du message // Envoi du message
write(sock,message,longueur_message); write(sock,message,longueur_message);
@ -248,7 +272,7 @@ int main (int argc, char **argv)
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);
int longueur_message = BASE_SIZE; int longueur_message = lg;
memset((char *)& adr_locale, 0, sizeof(adr_locale)) ; memset((char *)& adr_locale, 0, sizeof(adr_locale)) ;
@ -280,10 +304,6 @@ int main (int argc, char **argv)
} }
close(sock_bis); close(sock_bis);
close(sock); close(sock);
} }
} }