wip(v3): actual wip
This commit is contained in:
parent
10a3420bf6
commit
7feeb4b611
1 changed files with 35 additions and 15 deletions
50
tsock_v3.c
50
tsock_v3.c
|
@ -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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue