From 9fe033ea88c2f705ec18c232873d056e0c229d72 Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:05:53 +0200 Subject: Initial commit --- sem_6/.gitkeep | 0 sem_6/HLIN603/TP1/CompteBancaire.cpp | 15 ++++++ sem_6/HLIN603/TP1/CompteBancaire.h | 16 +++++++ sem_6/HLIN603/TP1/CompteDepot.cpp | 15 ++++++ sem_6/HLIN603/TP1/CompteDepot.h | 14 ++++++ sem_6/HLIN603/TP1/CompteDepotRemunere.cpp | 15 ++++++ sem_6/HLIN603/TP1/CompteDepotRemunere.h | 16 +++++++ sem_6/HLIN603/TP1/CompteDepotRemunereCB.cpp | 15 ++++++ sem_6/HLIN603/TP1/CompteDepotRemunereCB.h | 16 +++++++ sem_6/HLIN603/TP1/CompteRemunere.cpp | 15 ++++++ sem_6/HLIN603/TP1/CompteRemunere.h | 15 ++++++ sem_6/HLIN603/TP1/CompteRemunereAvecCB.cpp | 17 +++++++ sem_6/HLIN603/TP1/CompteRemunereAvecCB.h | 15 ++++++ sem_6/HLIN603/TP1/Prog.cpp | 39 +++++++++++++++ sem_6/HLIN603/TP1/a.out | Bin 0 -> 25919 bytes sem_6/HLIN603/TP3/prog.cpp | 9 ++++ sem_6/HLIN603/ocaml/TP2/ex1.caml | 18 +++++++ sem_6/HLIN603/ocaml/TP2/ex2.caml | 21 ++++++++ sem_6/HLIN603/ocaml/TP2/test.caml | 21 ++++++++ sem_6/HLIN611/.gitkeep | 0 sem_6/HLIN611/Chap_4/TD | 29 +++++++++++ sem_6/HLIN611/TCP/a.out | Bin 0 -> 9149 bytes sem_6/HLIN611/TCP/prog.c | 61 +++++++++++++++++++++++ sem_6/HLIN611/TD/TCP.txt | 19 ++++++++ sem_6/HLIN611/TP_TCP_P2/prog.c | 51 ++++++++++++++++++++ sem_6/HLIN611/a.out | Bin 0 -> 9053 bytes sem_6/HLIN611/td1.md | 14 ++++++ sem_6/HLIN611/tp1.c | 72 ++++++++++++++++++++++++++++ sem_6/Sans nom 1.ods | Bin 0 -> 22662 bytes 29 files changed, 538 insertions(+) create mode 100644 sem_6/.gitkeep create mode 100644 sem_6/HLIN603/TP1/CompteBancaire.cpp create mode 100644 sem_6/HLIN603/TP1/CompteBancaire.h create mode 100644 sem_6/HLIN603/TP1/CompteDepot.cpp create mode 100644 sem_6/HLIN603/TP1/CompteDepot.h create mode 100644 sem_6/HLIN603/TP1/CompteDepotRemunere.cpp create mode 100644 sem_6/HLIN603/TP1/CompteDepotRemunere.h create mode 100644 sem_6/HLIN603/TP1/CompteDepotRemunereCB.cpp create mode 100644 sem_6/HLIN603/TP1/CompteDepotRemunereCB.h create mode 100644 sem_6/HLIN603/TP1/CompteRemunere.cpp create mode 100644 sem_6/HLIN603/TP1/CompteRemunere.h create mode 100644 sem_6/HLIN603/TP1/CompteRemunereAvecCB.cpp create mode 100644 sem_6/HLIN603/TP1/CompteRemunereAvecCB.h create mode 100644 sem_6/HLIN603/TP1/Prog.cpp create mode 100644 sem_6/HLIN603/TP1/a.out create mode 100644 sem_6/HLIN603/TP3/prog.cpp create mode 100644 sem_6/HLIN603/ocaml/TP2/ex1.caml create mode 100644 sem_6/HLIN603/ocaml/TP2/ex2.caml create mode 100644 sem_6/HLIN603/ocaml/TP2/test.caml create mode 100644 sem_6/HLIN611/.gitkeep create mode 100644 sem_6/HLIN611/Chap_4/TD create mode 100644 sem_6/HLIN611/TCP/a.out create mode 100644 sem_6/HLIN611/TCP/prog.c create mode 100644 sem_6/HLIN611/TD/TCP.txt create mode 100644 sem_6/HLIN611/TP_TCP_P2/prog.c create mode 100644 sem_6/HLIN611/a.out create mode 100644 sem_6/HLIN611/td1.md create mode 100644 sem_6/HLIN611/tp1.c create mode 100644 sem_6/Sans nom 1.ods (limited to 'sem_6') diff --git a/sem_6/.gitkeep b/sem_6/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sem_6/HLIN603/TP1/CompteBancaire.cpp b/sem_6/HLIN603/TP1/CompteBancaire.cpp new file mode 100644 index 0000000..486b74f --- /dev/null +++ b/sem_6/HLIN603/TP1/CompteBancaire.cpp @@ -0,0 +1,15 @@ +#include +#include +#include"CompteBancaire.h" + +CompteBancaire::CompteBancaire(){} +CompteBancaire::~CompteBancaire(){ + std::cout<<"Destru Compte Bancaire"< +#include + +class CompteBancaire +{ + protected : + float solde; + public : + CompteBancaire(float v); + CompteBancaire(); + virtual ~CompteBancaire(); + virtual void deposer(float v); +}; +#endif diff --git a/sem_6/HLIN603/TP1/CompteDepot.cpp b/sem_6/HLIN603/TP1/CompteDepot.cpp new file mode 100644 index 0000000..afbcb88 --- /dev/null +++ b/sem_6/HLIN603/TP1/CompteDepot.cpp @@ -0,0 +1,15 @@ +#include +#include +#include"CompteDepot.h" +CompteDepot::CompteDepot(){} +CompteDepot::~CompteDepot(){ + std::cout<<"Destru Compte Depot"<1000? v + 9 : v - 1; + CompteBancaire::deposer(w); +} diff --git a/sem_6/HLIN603/TP1/CompteDepot.h b/sem_6/HLIN603/TP1/CompteDepot.h new file mode 100644 index 0000000..7016746 --- /dev/null +++ b/sem_6/HLIN603/TP1/CompteDepot.h @@ -0,0 +1,14 @@ +#ifndef _CD_H +#define _CD_H +#include +#include +#include"./CompteBancaire.h" +class CompteDepot : virtual public CompteBancaire +{ + public : + CompteDepot(float v); + CompteDepot(); + virtual ~CompteDepot(); + virtual void deposer(float); +}; +#endif diff --git a/sem_6/HLIN603/TP1/CompteDepotRemunere.cpp b/sem_6/HLIN603/TP1/CompteDepotRemunere.cpp new file mode 100644 index 0000000..2e12d17 --- /dev/null +++ b/sem_6/HLIN603/TP1/CompteDepotRemunere.cpp @@ -0,0 +1,15 @@ +#include +#include +#include"CompteDepotRemunere.h" + +CompteDepotRemunere::CompteDepotRemunere(){} +CompteDepotRemunere::~CompteDepotRemunere(){ + std::cout<<"Destru Compte Depot Remu"< +#include +#include"./CompteRemunere.h" +#include"./CompteDepot.h" + +class CompteDepotRemunere : public CompteRemunere,public CompteDepot +{ + public : + CompteDepotRemunere(float v); + CompteDepotRemunere(); + virtual ~CompteDepotRemunere(); + virtual void deposer(float); +}; +#endif diff --git a/sem_6/HLIN603/TP1/CompteDepotRemunereCB.cpp b/sem_6/HLIN603/TP1/CompteDepotRemunereCB.cpp new file mode 100644 index 0000000..1c7c872 --- /dev/null +++ b/sem_6/HLIN603/TP1/CompteDepotRemunereCB.cpp @@ -0,0 +1,15 @@ +#include +#include +#include"CompteDepotRemunereCB.h" + +CompteDepotRemunereCB::CompteDepotRemunereCB(){} +CompteDepotRemunereCB::~CompteDepotRemunereCB(){ + std::cout<<"Destru Compte Depot Remu CB"< +#include +#include"./CompteRemunere.h" +#include"./CompteDepot.h" + +class CompteDepotRemunereCB : public CompteDepotRemunere,public CompteDepotAvecCB +{ + public : + CompteDepotRemunere(float v); + CompteDepotRemunere(); + virtual ~CompteDepotRemunere(); + virtual void deposer(float); +}; +#endif diff --git a/sem_6/HLIN603/TP1/CompteRemunere.cpp b/sem_6/HLIN603/TP1/CompteRemunere.cpp new file mode 100644 index 0000000..fc409fb --- /dev/null +++ b/sem_6/HLIN603/TP1/CompteRemunere.cpp @@ -0,0 +1,15 @@ +#include +#include +#include"CompteRemunere.h" +CompteRemunere::CompteRemunere(){} +CompteRemunere::~CompteRemunere(){ + std::cout<<"Destru Compte Remu"< +#include +#include"./CompteBancaire.h" + +class CompteRemunere : virtual public CompteBancaire +{ + public : + CompteRemunere(float v); + CompteRemunere(); + virtual ~CompteRemunere(); + virtual void deposer(float); +}; +#endif diff --git a/sem_6/HLIN603/TP1/CompteRemunereAvecCB.cpp b/sem_6/HLIN603/TP1/CompteRemunereAvecCB.cpp new file mode 100644 index 0000000..d8b1186 --- /dev/null +++ b/sem_6/HLIN603/TP1/CompteRemunereAvecCB.cpp @@ -0,0 +1,17 @@ +#include +#include +#include"CompteRemunere.h" + +CompteRemunereAvecCB::CompteRemunereAvecCB(){ +} +CompteRemunereAvecCB::~CompteRemunereAvecCB(){ + std::cout<<"Destru Compte Remu CB"< +#include +#include"./CompteBancaire.h" + +class CompteRemunereAvecCB : public CompteRemunere +{ + public : + CompteRemunereAvecCB(float v); + CompteRemunereAvecCB(); + virtual ~CompteRemunereAvecCB(); + virtual void deposer(float); +}; +#endif diff --git a/sem_6/HLIN603/TP1/Prog.cpp b/sem_6/HLIN603/TP1/Prog.cpp new file mode 100644 index 0000000..d4bbc36 --- /dev/null +++ b/sem_6/HLIN603/TP1/Prog.cpp @@ -0,0 +1,39 @@ +#include +#include +#include"CompteDepot.h" +#include"CompteBancaire.h" +#include"CompteRemunere.h" +#include"CompteDepotRemunere.h" +#include +int main(int argc, char ** argv){ + srand(time(NULL)); + CompteBancaire * vp[atoi(argv[1])]; + for (int i = 0 ; i < atoi(argv[1]); i ++){ + if (i % 2 == 1){ + std::cout<<"Avec COmpte Depot"<deposer(Argent); + // delete cb; + // std::cout<<"Avec Compte Depot"<deposer(Argent); + // delete cb; + // std::cout<<"Avec Compte Remunere"<deposer(Argent); + // delete cb; + + return 0; +} diff --git a/sem_6/HLIN603/TP1/a.out b/sem_6/HLIN603/TP1/a.out new file mode 100644 index 0000000..38df8c4 Binary files /dev/null and b/sem_6/HLIN603/TP1/a.out differ diff --git a/sem_6/HLIN603/TP3/prog.cpp b/sem_6/HLIN603/TP3/prog.cpp new file mode 100644 index 0000000..4557755 --- /dev/null +++ b/sem_6/HLIN603/TP3/prog.cpp @@ -0,0 +1,9 @@ +#include +#include +#include + +int main(int argc, char ** argv){ + + + return 0; +} diff --git a/sem_6/HLIN603/ocaml/TP2/ex1.caml b/sem_6/HLIN603/ocaml/TP2/ex1.caml new file mode 100644 index 0000000..ab3237a --- /dev/null +++ b/sem_6/HLIN603/ocaml/TP2/ex1.caml @@ -0,0 +1,18 @@ +class min ( xi : int ) = +object ( self ) + val mutable x = xi + method get = x + method set n = x <- n + method min y = if self#get < y then self#get else y +end;; +class min_zero xi = +object + inherit min xi + method get = 0 +end;; +let o1 = new min 4;; +let o2 = new min_zero 0;; +o1#min 2;; +o1#min 7;; +o2#min 2;; +o2#min (-2);; diff --git a/sem_6/HLIN603/ocaml/TP2/ex2.caml b/sem_6/HLIN603/ocaml/TP2/ex2.caml new file mode 100644 index 0000000..21779af --- /dev/null +++ b/sem_6/HLIN603/ocaml/TP2/ex2.caml @@ -0,0 +1,21 @@ +class account b = +object (self) + val mutable balance = 0.0 + method get = balance + method deposit a = balance<-balance +. a + method withdraw a = balance <- balance -. a + method print = print_float balance; print_newline() + initializer self#deposit b +end;; +class interest_account b = +object + inherit account b + method interest = balance <- balance +. 5. *. balance /. 100. +end;; +class secure_account b = +object + inherit account b as super + method withdraw a = if (balance -. a)>=0. then super#withdraw a else failwith "T'as pas l'flouze gros!" +end;; +class bank = + method diff --git a/sem_6/HLIN603/ocaml/TP2/test.caml b/sem_6/HLIN603/ocaml/TP2/test.caml new file mode 100644 index 0000000..a454ab3 --- /dev/null +++ b/sem_6/HLIN603/ocaml/TP2/test.caml @@ -0,0 +1,21 @@ +class aa = +object + method print = print_endline("Je suis A") +end;; +class bb = +object + inherit aa + method print = print_endline("Je suis B") +end;; +class cc = +object + inherit bb as superb +end;; +class dd = +object (self) + inherit cc as super + method print = print_endline("Je suis D") + method m = super#print +end;; +let a = new dd;; +a#m;; diff --git a/sem_6/HLIN611/.gitkeep b/sem_6/HLIN611/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sem_6/HLIN611/Chap_4/TD b/sem_6/HLIN611/Chap_4/TD new file mode 100644 index 0000000..ae2f148 --- /dev/null +++ b/sem_6/HLIN611/Chap_4/TD @@ -0,0 +1,29 @@ +Exo 1 : +194.195.196.197/24 +194.195.196.206/24 +130.160.21.22/24 +130.160.140.22/24 +I) Classe C pour 1 et 2, Classe B pour 3 et 4 ( mais masque incorrect, devrait être /16) +1) 194.195.196.1 to 194.195.196.254 +2) 194.195.196.1 to 194.195.196.254 +3) 130.160.21.1 to 130.160.21.254 +4) 130.160.140.1 to 130.160.140.254 + +II) +1) 11000010.11000011.11000100.11000101 +application du masque : +OU 11111111.11111111.11111111.00000000 + =11000010.11000011.11000100.00000000 +2) 11000010.11000011.11000100.11000101 +3) 10000010.10100000.00010101.00010110 +4) 10000010.10100000.10001100.00010110 + +On change de reseau des lors qu'un bit commun avec le masque change d'une adresse à l'autre. + +III) +Pour que H1 et H2 ne soient pas dans le meme reseaux : il faut un masque genre +255.255.255.248 + +Exo 2 : +I) +2) diff --git a/sem_6/HLIN611/TCP/a.out b/sem_6/HLIN611/TCP/a.out new file mode 100644 index 0000000..6d92efd Binary files /dev/null and b/sem_6/HLIN611/TCP/a.out differ diff --git a/sem_6/HLIN611/TCP/prog.c b/sem_6/HLIN611/TCP/prog.c new file mode 100644 index 0000000..046d2f1 --- /dev/null +++ b/sem_6/HLIN611/TCP/prog.c @@ -0,0 +1,61 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#define closesocket(s) close(s) + +typedef int SOCKET; +typedef struct sockaddr_in SOCKADDR_IN; +typedef struct sockaddr SOCKADDR; +typedef struct in_addr IN_ADDR; +int main (int argc, char ** argv){ + if (argc != 2){ + printf("Syntaxe : %s message\n",argv[0]); + return 1; + } + + //init du socket local + struct sockaddr_in sin= { 0 }; + int sock = socket(PF_INET, SOCK_STREAM, 0); + if(sock == -1) + { + perror("socket()"); + exit(errno); + } + + // inet_pton(AF_INET,"162.38.81.131",&(sin.sin_addr)); + // //recherche de la cible + // const char * hostname = "s1.fdsetu.infra.umontpellier.fr"; + // hostinfo=gethostbyname(hostname); + // if (hostinfo == NULL) /* l'hôte n'existe pas */ + // { + // fprintf (stderr, "Unknown host %s.\n", hostname); + // exit(EXIT_FAILURE); + // } +if (inet_pton(AF_INET,"162.38.81.131",&(sin.sin_addr))==-1){ + perror("inet_pton()"); + exit(errno); +} +// sin.sin_addr = *(IN_ADDR *) hostinfo->h_addr; +sin.sin_port = htons(53325); +sin.sin_family = AF_INET; +if(connect(sock,(SOCKADDR *) &sin, sizeof(sin)) == -1) +{ + perror("connect()"); + exit(errno); +} + +char buffer[1024]; +strcpy(buffer,argv[2]); +if(send(sock, buffer, strlen(buffer), 0) < 0) +{ + perror("send()"); + exit(errno); +} + + return 0; +} diff --git a/sem_6/HLIN611/TD/TCP.txt b/sem_6/HLIN611/TD/TCP.txt new file mode 100644 index 0000000..c3065a9 --- /dev/null +++ b/sem_6/HLIN611/TD/TCP.txt @@ -0,0 +1,19 @@ +Exercice 1 : +1) Non +2) Non +3) Non + +Exercice 2 : +1) Soit p1 et p2 deux paquets tcp, si p1 passe par r1 et p2 par r2, et que r1 est moins efficace que r2, alors p2 arrivera avant p1 +Si p1 est envoyé, et p2 l'est ensuite, si p1 est perdu en route, alors il sera renvoyé au bout de x temps, car non recu alors p1 arrivera après p2 + +2) Dans le cas d'une connection p2p sur un même reseau local, les paquets arriveront dans l'ordre où ils ont étés envoyés. + +3) Pour la 1, meme reponse, pour la 2, ca depends + +Exercice 3 : +1 ) Elle est envisageable mais non indispensable +2) On attends l'accusé de reception avant de renvoyer un autre message, ce n'est pas optimal +3 ) Si l'accusé de reception tarde à arriver, soit je retransmet le message, soit je redemande un accusé de reception soit je considère que la connection est morte +4.. +5) Il faut identifier chaque paquet individuellement diff --git a/sem_6/HLIN611/TP_TCP_P2/prog.c b/sem_6/HLIN611/TP_TCP_P2/prog.c new file mode 100644 index 0000000..0575631 --- /dev/null +++ b/sem_6/HLIN611/TP_TCP_P2/prog.c @@ -0,0 +1,51 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +int main (int argc, char ** argv){ + if (argc != 4){ + printf("Nombre de paramètre incorrect : format : \n %s adresse port fichier",argv[0]) + } + int Socket_envoi= socket(PF_INET,SOCK_STREAM,0); + FILE fichier = fopen(argv[3],"r"); + struct sockaddr_in addresse; + printf("Fichier ouvert\n"); + char buf; + if (inet_pton(AF_INET,argv[1],&(adresse.sin_addr))==-1){ + perror("inet_pton()"); + exit(errno); + } + adresse.sin_port = htons(atoi(argv[2])); + adresse.sin_family = AF_INET; + if(connect(Socket_envoi,(SOCKADDR *) &adresse, sizeof(adresse)) == -1) + { + perror("connect()"); + exit(errno); + } + char tableau[1000]; + int i =0; + if(send(Socket_envoi, argv[3], strlen(argv[3]), 0) < 0) + { + perror("send()"); + exit(errno); + } + while (buf = getc(fichier)!= EOF){ + tableau[i]=buf; + i++; + if ( i = 999){ + if(send(Socket_envoi, tableau, strlen(tableau), 0) < 0) + { + perror("send()"); + exit(errno); + } + i = 0; + } + } + + return 0; +} diff --git a/sem_6/HLIN611/a.out b/sem_6/HLIN611/a.out new file mode 100644 index 0000000..94dba0e Binary files /dev/null and b/sem_6/HLIN611/a.out differ diff --git a/sem_6/HLIN611/td1.md b/sem_6/HLIN611/td1.md new file mode 100644 index 0000000..87b2f57 --- /dev/null +++ b/sem_6/HLIN611/td1.md @@ -0,0 +1,14 @@ +# TD 1 : + +Exercice 1 : +a) 33 554 432 bits pour 1 image, 335 544 320 bits pour 10. +b) A 55,6Kbits/s, +Soit 100 minutes +A 1Mbits/s : 5 minutes +A 10Mb/s : 33 s +A 100Mb/s : 3 s + + +``` + +``` \ No newline at end of file diff --git a/sem_6/HLIN611/tp1.c b/sem_6/HLIN611/tp1.c new file mode 100644 index 0000000..7ff5a2b --- /dev/null +++ b/sem_6/HLIN611/tp1.c @@ -0,0 +1,72 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +int main (int argc, char ** argv){ + if (argc != 2){ + printf("Syntaxe : %s nom\n",argv[0]); + return 1; + } + struct addrinfo hints; + struct addrinfo *result, *rp; + int s; + char addrstr[64]; + char ip[64]; + char canonname[256]; + memset(&canonname, 0, 256*sizeof(char)); + memset(&ip, 0, 64*sizeof(char)); + memset(&addrstr,0,64*sizeof(char) ); + hints.ai_family=AF_UNSPEC; + hints.ai_socktype=0; + hints.ai_flags = AI_CANONNAME; + struct addrinfo * p ; + s= getaddrinfo(argv[1],NULL,&hints,&result); + if (s !=0) { + printf("error in getaddrinfo : %s\n", gai_strerror(s)); + return 1; + } + strcpy(canonname, result->ai_canonname); + printf("%s\n",canonname); + int error; + char hostname[NI_MAXHOST] = ""; + char oldhostname[NI_MAXHOST]="uesh"; + for (p = result; p != NULL; p = p->ai_next){ + + error = getnameinfo(p->ai_addr, p->ai_addrlen, hostname, NI_MAXHOST, NULL, 0, 0); + if (error != 0) + { + printf("error in getnameinfo: %s\n", gai_strerror(error)); + return 1; + } + if (strcmp(hostname,"")!=0 && strcmp(hostname,oldhostname)!=0){ + printf("hostname : %s\n", hostname); + strcpy(oldhostname,hostname); + } + void * ptr; + switch(p->ai_family){ + case AF_INET: + ptr = &((struct sockaddr_in * ) p->ai_addr)->sin_addr; + break; + case AF_INET6: + ptr = &((struct sockaddr_in6 * ) p->ai_addr)->sin6_addr; + break; + } + inet_ntop (p->ai_addr->sa_family,ptr, addrstr, 64 ); + char type[100]; + switch (p->ai_socktype){ + case (SOCK_STREAM): + strcpy(type,"STREAM"); + break; + case (SOCK_DGRAM): + strcpy(type,"DGRAM"); + break; + } + printf("IP : %s type : %s\n",addrstr,type); + } + return 0; +} diff --git a/sem_6/Sans nom 1.ods b/sem_6/Sans nom 1.ods new file mode 100644 index 0000000..019dcd0 Binary files /dev/null and b/sem_6/Sans nom 1.ods differ -- cgit v1.2.3