From e4bd9c64c957e47f4b4a3601aeb432d20e25e158 Mon Sep 17 00:00:00 2001 From: Flavien Haas Date: Mon, 23 Sep 2019 14:37:16 +0200 Subject: [PATCH] initial commit --- TP 9 Sockets C.zip | Bin 0 -> 79620 bytes TP3_sockets_echo-2.pdf | Bin 0 -> 51421 bytes client_echo.c | 87 ++++++++++++++++++++ serveur.o | Bin 0 -> 9516 bytes serveur_echo.c | 178 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 265 insertions(+) create mode 100644 TP 9 Sockets C.zip create mode 100644 TP3_sockets_echo-2.pdf create mode 100755 client_echo.c create mode 100755 serveur.o create mode 100755 serveur_echo.c diff --git a/TP 9 Sockets C.zip b/TP 9 Sockets C.zip new file mode 100644 index 0000000000000000000000000000000000000000..1d0e529f2fe02d759594359c1b291e6d6f03327c GIT binary patch literal 79620 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 VI|~2+pnuB?AOOG%%ijv%e*k(vW5xgg literal 0 HcmV?d00001 diff --git a/TP3_sockets_echo-2.pdf b/TP3_sockets_echo-2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5b129917e5da31baf59f91ae12618d241680f805 GIT binary patch literal 51421 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 +#include +#include +#include +#include +#include +#include +#include +#include + +#define LG_BUFFER 1024 + +int main (int argc, char * argv[]) { + struct sockaddr_in adresse; + int sock; + + char buffer [LG_BUFFER]; + int nb_lus; + + // Serveur auquel on se connecte + char * hote = "127.0.0.1"; + // Port du serveur sur lequel on se connecte + int port = 60000; + + struct hostent * hostent; + struct servent * servent; + + // Vider la structure adresse + memset(&adresse, 0, sizeof(struct sockaddr_in)); + + // Donner l'adresse du serveur à la structure adresse + if (inet_aton(hote, & (adresse.sin_addr)) == 0) { + if ((hostent = gethostbyname(hote)) == NULL) { + printf("Erreur : hote %s inconnu \n", hote); + return -1; + } + adresse.sin_addr.s_addr = ((struct in_addr *) (hostent->h_addr))->s_addr; + } + + // Donner un numero de port à la structure adresse + adresse.sin_port = htons(port); + + // Donner la famille de socket à la structure adresse + adresse.sin_family = AF_INET; + + // Créer la socket nommée sock + if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) { + printf("Erreur : socket\n"); + exit(EXIT_FAILURE); + } + + // Etablir la connexion avec le serveur + if(connect(sock, (struct sockaddr *) & adresse, sizeof (struct sockaddr_in)) < 0 ) { + printf("Erreur : socket"); + return -1; + } + + while (1) { + // Lecture du clavier + if (fgets(buffer, 256, stdin) == NULL) + break; + + if (buffer[strlen(buffer) - 1] == '\n') + buffer[strlen(buffer) - 1] = '\0'; + + // Ecriture des données sur la socket + if (write(sock, buffer, strlen(buffer)) < 0 ) { + printf("Erreur : write\n"); + break; + } + + // Lecture de la réponse du serveur + if ((nb_lus = read(sock, buffer, LG_BUFFER)) == 0 ) { + break; + } + + if (nb_lus < 0) { + printf("Erreur : read\n"); + break; + } + + // Affichage de données recues, variable buffer + printf("%s\n", buffer); + } + + return EXIT_SUCCESS; +} diff --git a/serveur.o b/serveur.o new file mode 100755 index 0000000000000000000000000000000000000000..e9b306899a6b3587b23185d045a31de59d21340d GIT binary patch literal 9516 zcmeHNZ)_CD6`zBU8eBNLg_N|7xFn?|Q3M7>70`s*5vwc;1Q&3NP{{gx-osbUd)NCD zpz28mb1AEhks~D$jrxH^ZBkXP{L_`WJRvzsIKHTd&rgip=u$axWC`* z>~XiImD+y2fth)~H}l@SdGltxp7GUB{(9##LWC9y(X&7Z5k_uUBt%g}Knd|6vW{#R ztu4=L`?Os<$*oSIYIsjXJrn3?7<;t6d#bxg`G#tqP#Crem?JZL7)H)KoFnC>puYAx zOa@I+3Lz2S=aF7{pXjNChLO$XJF;a~P~XL+p1yX~!^gfrozi!|VtD$DE;E@nGvEdF zePx-aZ&39orr*nHo_(=wE|ahhs18AW<4WI$s-3tpRp~~9VdSkt39HjcSn-s^)$1{U z0HFW4=1jyv9bSu9a$Psdb=}&sr=_9=>qkBQItFX5D`HM&b~6ksX=IOdcchX=I+p>y zx4v?ifS|me=>KvXXu~*=stA*L`Wlpd2oITvgZe(F+E^JzGWwtFTdDN*C>i2PeVp&- zRU50j`)d2P=bzKIZu9p2GYZUjBGZ{j8K+OaHod?=<`_FpsOj>sqy@j(xcZ6Oooe7A8da z_$IQP!i3v`gAXES_1>EzTzrV^zNf#4qiImM+t4SBvf$53AqcL&{#%|C=RpehHqHuL8{v?BYRCys@E^kO&i=#aZXCB zaW1maodp99dmPr=+G$LEMdbv3EJt*-5nG#fv}xU0dK(>eXR+?I-PAXIU~8ws#l=*m zozi(s8#qLtj8o;!7i`DL}{}WoN>QK z+lC4^5HHu<4n&3L+VIddxL`X(btiuf;*Fj-?YFfn-ozIMCO+m*d<+wB#>8Jkc!cX! zJh#LC52QkA|EM-W<1q>s;QV#A^sV>@X!q0G49=}$U+i_~?6zTBdoO%^9lFXLdi;c)S(GA>NHKSgh+Fp0hB#=&1d z=l%#BSiRL7_BTM~Vb7Gj)tq!K4x$Z~p2B)~u0DnSl`%HpyLtewZilNMgGjhOylSf# zU;5D*exktTFG@)-WX{dNFK79oz@7KYSs+L9Tz-$*qxLx$tX^5dMf^byTi?ah=>@wu zjaK+#5js2P2<+k%N_PYueW@ZBr}U&0l_Th}BDG#VzKG*NkVfdS*U5CRu%BI=09}f4 zww^iNWIIdW#>f@3E{>y{H*x*w2Too-X+UDvi!Cz_sVjgEMJi2i?VE&Wrr*~Wf_-cmn^?4%cLwBg+gra zd*~zB*Rp$V_3u&lcad583uf5G&#TfTDSkMWu9M;?TxpEdH%Xl*^&F`)q`pJy=cJOP zPLn!D>J3t_lX`{JJEV@0Iz#F(sf(m6QrAdzlKP0$K2kgoORb=^OvcP-BAX)z%v@J0 zo9j4YMZ3)-#;Rm-u5r)^tn=TjJR3=94*9W)N)qnS?etxQ9IGav2bBe}ub z5Ik!4xVU4HDbz1AD+7}8Xd;Q1#!Li!@1lcf4G_giH-U~NQ(2Q>BY=50kt5v%|7M1)cCZqbnKP_hDoREd7|8^l`z)d~P`BBg#Z?c`VW2dg z*mH5Bo)92!TnJ7Os7oQhe!@eUM2@Db6f*F)3HKY_U6_U$%jZnI{YU90E0!@$B@F*T zWw*#gF66xQ8E*SctT0 zU#qbHcNEVk%=cBw>k2pF!I-$sZ^zX(@d0GiBxO2+vJ$@%z^?`Hn*sb*0KXf+zX;&> z0{BV*{~>^<1DKbHmG=HEfO!jB*}lL7D7~~KfExptZ#R5U;e8(8+~GFC>pEO}d4GF@ zx)GUg?)-a!<;Z*l;yQf+nHR1|&A9H9Z}b0;t_c3BVSd~i|0YI_d&ILL%USnSL zRvj$zc&OrdM~#10c&CIqAH0*nI}-w@0b%7iKwLfnD)zp=>;3)i?{sgA`}Ul?< SVeH(!`%pB!&C0F+y7(7kVvZC5 literal 0 HcmV?d00001 diff --git a/serveur_echo.c b/serveur_echo.c new file mode 100755 index 0000000..d4ac379 --- /dev/null +++ b/serveur_echo.c @@ -0,0 +1,178 @@ +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int cree_socket_stream (const char * nom_hote, const int num_port, const char * nom_proto); +int affiche_adresse_socket (int sock); +int serveur_tcp (void); +void traite_connexion (int sock); + +int cree_socket_stream (const char * nom_hote, const int num_port, const char * nom_proto){ + int sock; + struct sockaddr_in adresse; + struct hostent * hostent = NULL; + struct protoent * protoent = NULL; + + if (nom_hote != NULL) { + if ((hostent = gethostbyname(nom_hote)) == NULL) { + printf("Erreur : gethostbyname\n"); + return -1; + } + } + + if ((protoent = getprotobyname(nom_proto)) == NULL) { + printf("Erreur : getprotobyname\n"); + return -1; + } + + // Créer la socket nommée sock + if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) { + printf("Erreur : socket"); + return -1; + } + + // Mise à 0 de la structure adresse + memset(& adresse, 0, sizeof(struct sockaddr_in)); + + // Donner la famille de socket dans la structure adresse + adresse.sin_family = AF_INET; + + adresse.sin_port = num_port; + + // Donner un numero de port à la structure adresse + if (num_port > 1024) { + adresse.sin_port = htons(num_port); + } + else { + adresse.sin_port = htons(0); + } + + // Donner l'adresse du serveur à la structure adresse + if (hostent != NULL) { + adresse.sin_addr.s_addr = ((struct in_addr *) (hostent->h_addr))->s_addr; + } + else { + adresse.sin_addr.s_addr = htonl(INADDR_ANY); + } + + // Pattacher un port a la socket sock + if (bind(sock, (struct sockaddr *) & adresse, sizeof(struct sockaddr_in)) < 0) { + close(sock); + printf("Erreur : bind\n"); + return -1; + } + + return sock; +} + +int affiche_adresse_socket (int sock) { + struct sockaddr_in adresse; + socklen_t longueur; + + longueur = sizeof(struct sockaddr_in); + + if (getsockname(sock, & adresse, & longueur) < 0) { + printf("Erreur : getsockname\n"); + return -1; + } + + printf ("IP = %s, Port = %u \n", inet_ntoa(adresse.sin_addr), ntohs(adresse.sin_port)); + return 0; +} + +int serveur_tcp (void) { + int sock_contact; // Socket créée du côté du serveur + int sock_connectee; // Socket du côté du client qui se connecte + struct sockaddr_in adresse; + socklen_t longueur; + + longueur = sizeof(struct sockaddr_in); + + // Appeler la fonction cree_socket_stream() pour créer la socket nommée socket_contact + // Choisir : nom de l'hote, le num du port, le protocole + + sock_contact = cree_socket_stream("0.0.0.0", 1234, "tcp"); + + if (sock_contact < 0) { + return -1; + } + + // Placer le serveur en écoute sur la socket nommée sock_contact + listen(sock_contact, 5); + + printf("Mon adresse >> "); + affiche_adresse_socket(sock_contact); + + while (1) { + // tester si un client se connecte : appel accept() bloquant + // Le retour de accept() est une nouvelle socket nommé sock_connectee + // avec laquelle l'échange avec le client aura lieu + + sock_connectee = accept(sock_contact, & adresse, & longueur); + + if (sock_connectee < 0) { + printf("Erreur : accept\n"); + return -1; + } + + printf("Nouveau client\n"); + + switch (fork()) { + case 0 : // Code du fils + close(sock_contact); + traite_connexion(sock_connectee); + exit(EXIT_SUCCESS); + case -1 : + printf("Erreur : fork\n"); + return -1; + default : // Code du pere + close(sock_connectee); + } + } + return 0; +} + +void traite_connexion (int sock){ + char buffer[256]; + int longueur; + + while (1) { + // Lire la socket et récupérer le nombre d'octets lus dans la variable longueur + longueur = read(sock, buffer, 256); + + if (longueur < 0) { + printf("Erreur : read\n"); + exit(EXIT_SUCCESS); + } + + if (longueur == 0) { + break; + } + + // printf("J'ai lu %d bytes\n",longueur); + // Pour le client telnet : + //buffer[longueur-2] = '\0'; + // Avec un client autre que telnet : + buffer[longueur]='\0'; + + // printf("Je melange %s\n",buffer); + //strfry(buffer); + + // Ecrire la variable buffer sur la socket + write(sock, buffer, longueur); + } + + close(sock); +} + + +int main (int argc, char * argv[]) { + return serveur_tcp(); +}