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 source = -1 ; /* 0=puits, 1=source */
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) {
case 'p':
if (source == 1) {
@ -63,12 +64,28 @@ int main (int argc, char **argv)
case 'n':
nb_message = atoi(optarg);
//Indice packet limite to 5 characters
if(n >= 100000) {
printf("Too many packets");
exit(1);
}
break;
case 'u':
udp=1;
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:
printf("usage: cmd [-p|-s][-n ##]\n");
break;
@ -81,7 +98,13 @@ int main (int argc, char **argv)
int port=atoi(argv[argc-1]);
port = htons(port);
char* message = malloc(BASE_SIZE * sizeof(char));
if (lg == -1) {
lg=30;
}
char* message = malloc(lg * sizeof(char));
if (source == -1) {
printf("usage: cmd [-p|-s][-n ##]\n");
@ -111,6 +134,7 @@ int main (int argc, char **argv)
}
if (udp==1){
// Creation du socket local
int sock= socket(AF_INET,SOCK_DGRAM,0);
@ -124,7 +148,7 @@ int main (int argc, char **argv)
struct sockaddr_in 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)) ;
@ -143,7 +167,7 @@ int main (int argc, char **argv)
for (int i = 0; i < nb_message; i++) {
// Construction du message
construire_message(message, 'a' + (i % 26), BASE_SIZE);
construire_message(message, 'a' + (i % 26), lg);
// Envoi du message
@ -160,7 +184,7 @@ int main (int argc, char **argv)
struct sockaddr_in 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)) ;
@ -202,7 +226,7 @@ int main (int argc, char **argv)
struct sockaddr_in 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)) ;
@ -229,7 +253,7 @@ int main (int argc, char **argv)
// Envoie des messages
for (int i = 0; i < nb_message; i++) {
// Construction du message
construire_message(message, 'a' + (i % 26), BASE_SIZE);
construire_message(message, 'a' + (i % 26), lg);
// Envoi du message
write(sock,message,longueur_message);
@ -248,7 +272,7 @@ int main (int argc, char **argv)
struct sockaddr_in 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)) ;
@ -280,10 +304,6 @@ int main (int argc, char **argv)
}
close(sock_bis);
close(sock);
}
}