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 source = -1 ; /* 0=puits, 1=source */
|
||||
int udp=0; /* 0=TCP, 1=UDP */
|
||||
|
||||
while ((c = getopt(argc, argv, "pn:su")) != -1) {
|
||||
int lg=-1;
|
||||
|
||||
while ((c = getopt(argc, argv, "pn:sul:")) != -1) {
|
||||
switch (c) {
|
||||
case 'p':
|
||||
if (source == 1) {
|
||||
|
@ -63,11 +64,27 @@ 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;
|
||||
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");
|
||||
|
@ -80,8 +97,14 @@ int main (int argc, char **argv)
|
|||
// Recuperation du port
|
||||
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);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue