readme + -h
This commit is contained in:
parent
9e501096b5
commit
1ee178a63c
2 changed files with 36 additions and 27 deletions
34
README.md
34
README.md
|
@ -1,29 +1,25 @@
|
|||
# tsock_Abderrahman_Nathan
|
||||
|
||||
implémentation de Tsock par Abderrahman et Nathan
|
||||
implémentation de Tsock par Abderrahman El-Ouali et Nathan Billard
|
||||
|
||||
To compile
|
||||
Pour compiler le programme
|
||||
``` sh
|
||||
gcc -Wall tsock_v0.c
|
||||
gcc -Wall tsock_v0.c -o nom_de_l_executable
|
||||
```
|
||||
|
||||
To get the files
|
||||
À l'issue du TP, nous avons terminé la version v4.
|
||||
Cela inclut:
|
||||
* comment gérer les paramètres données au programme
|
||||
* gère la communication en mode UDP
|
||||
* permet de déterminer le nombre de messages à envoyer ainsi que leur longeur
|
||||
* permet de créer un serveur TCP qui recoit/envoye des messages des/au clients
|
||||
* permet de créer un client TCP qui envoie/écoutes des messages au/de la part d'un serveur TCP
|
||||
* permet au serveur TCP d'accepter plusieures connexions
|
||||
* effectué avec 2 clients sur la même machine et 2 clients sur des machines différentes
|
||||
|
||||
Pour voir comment avec quels paramètres executer le programme, tapez
|
||||
|
||||
``` sh
|
||||
git clone https://git.etud.insa-toulouse.fr/nbillard/tsock_Abderrahman_Nathan.git
|
||||
./nom_de_l_executable -h
|
||||
```
|
||||
|
||||
download updates
|
||||
``` sh
|
||||
git pull
|
||||
```
|
||||
|
||||
upload updates
|
||||
git
|
||||
``` sh
|
||||
git add .
|
||||
git commit -m "meaningfull message"
|
||||
git push
|
||||
```
|
||||
|
||||
|
||||
|
|
29
tsock_v4.c
29
tsock_v4.c
|
@ -25,13 +25,23 @@ void afficher_message(char *message, int lg, int num) {
|
|||
}
|
||||
|
||||
void usage() {
|
||||
printf("usage: cmd [-p|-s] [-c] [-e|-r] [-u|-t] [-n ##] [-l ##]\n");
|
||||
printf("usage: cmd [-h] [-p|-s] [-c] [-e|-r] [-u|-t] [-n ##] [-l ##] <url_correspondant> <num_port> \n");
|
||||
printf(" -h : help (prints this message)\n");
|
||||
printf(" -p : puit (uniquement pour serveur en tcp)\n");
|
||||
printf(" -s : source (uniquement pour serveur en tcp)\n");
|
||||
printf(" -c : client (uniquement en tcp)\n");
|
||||
printf(" -e : émetteur (uniquement si client tcp)\n");
|
||||
printf(" -r : recepteur (uniquement si client tcp)\n");
|
||||
printf(" -u : protocole UDP\n");
|
||||
printf(" -t : protocole TCP\n");
|
||||
printf(" -n ## : indique le nombre de messages à envoyer\n");
|
||||
printf(" -l ## : longeur de chaqu'un des messages à envoyer\n");
|
||||
}
|
||||
|
||||
|
||||
int main (int argc, char **argv) {
|
||||
int i;
|
||||
int c;
|
||||
int i; // pour les boucles for
|
||||
int c; // pour getopt
|
||||
extern char *optarg;
|
||||
extern int optind;
|
||||
int nb_message = -1; /* Nb de messages à envoyer ou à recevoir, par défaut : 10 en émission, infini en réception */
|
||||
|
@ -61,8 +71,11 @@ int main (int argc, char **argv) {
|
|||
|
||||
printf("début père\n");
|
||||
|
||||
while ((c = getopt(argc, argv, "pscertun:l:")) != -1) {
|
||||
while ((c = getopt(argc, argv, "hpscertun:l:")) != -1) {
|
||||
switch (c) {
|
||||
case 'h':
|
||||
usage();
|
||||
return 0;
|
||||
case 'c': /* Si on est en mode tcp, on devient client */
|
||||
if (transport && ( source == 1 || source == 0) ) { /* on ne peut pas être client et serveur à la fois */
|
||||
usage();
|
||||
|
@ -182,7 +195,7 @@ int main (int argc, char **argv) {
|
|||
if (nb_message == -1) {
|
||||
nb_message = 10; // par défaut
|
||||
}
|
||||
printf("SOURCE : lg_mesg_emis=%d, port=%d, nb_envois=%d, TP=udp, dest=%s\n", lg_mesg, port, nb_message, argv[argc-2]);
|
||||
printf("SOURCE : lg_mesg_emis=%d, port=%d, nb_envois=%d, TP=udp, dest=%s\n", lg_mesg, ntohs(port), nb_message, argv[argc-2]);
|
||||
|
||||
//création du socket local
|
||||
if((sock=socket(AF_INET, SOCK_DGRAM,0)) == -1) {
|
||||
|
@ -213,7 +226,7 @@ int main (int argc, char **argv) {
|
|||
|
||||
//envoi
|
||||
for(i=0; i<nb_message; i++) {
|
||||
construire_message(pmesg, (char)((i%26)+97), lg_mesg);
|
||||
construire_message(pmesg, (char)((i%26)+'a'), lg_mesg);
|
||||
printf("SOURCE: Envoi ");
|
||||
afficher_message(pmesg, lg_mesg, (i+1));
|
||||
sendto(sock, pmesg, lg_mesg, 0,(struct sockaddr*)&adr_distant, lg_adr_dest);
|
||||
|
@ -345,7 +358,7 @@ int main (int argc, char **argv) {
|
|||
//envoi
|
||||
for(i=0; i<nb_message; i++) {
|
||||
printf("SOURCE: Envoi ");
|
||||
construire_message(pmesg, (char)((i%26)+97), lg_mesg);
|
||||
construire_message(pmesg, (char)((i%26)+'a'), lg_mesg);
|
||||
afficher_message(pmesg, lg_mesg, (i+1));
|
||||
send(sock, pmesg, lg_mesg, 0);
|
||||
}
|
||||
|
@ -419,7 +432,7 @@ int main (int argc, char **argv) {
|
|||
//envoi
|
||||
for(i=0; i<nb_message; i++) {
|
||||
printf("SOURCE: Envoi ");
|
||||
construire_message(pmesg, (char)((i%26)+97), lg_mesg);
|
||||
construire_message(pmesg, (char)((i%26)+'a'), lg_mesg);
|
||||
afficher_message(pmesg, lg_mesg, (i+1));
|
||||
send(sock_bis, pmesg, lg_mesg, 0);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue