1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
| #include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
//void dostuff(int); /* function prototype */
void error(char *msg)
{
perror(msg);
exit(1);
}
int n;
int Q;
int R;
char buffer[256];
tab_score[1];
//initialisation des table de question réponse
int tab_question[9];
int tab_reponse[9];
tab_question[0] = "que gravite autour de la terre ?\n 1 : la lune \n 2: le soleil\n 3: mars\n";
tab_reponse[0]="1";
tab_question[1] = "comment s'applle le substance qui permet d'oxygené le sang? 1: l'achool\n 2: l'acol\n 3 : l'alcool\n";
tab_reponse[1]="3";
tab_question[2] = "Il existe plusieurs statistiques permettant d'évaluer le taux de chômage en France\n 1 : vrai\n 2: faux\n";
tab_reponse[2]="1";
tab_question[3] = "la communication entre le cerveau et le corp se fait par :\n 1 : par un courant 2: par le sang\n 3 : par les hormone\n";
tab_reponse[3]="1";
tab_question[4] = "Quel etait le prénom de Kate Winslet dans Titanic de James Cameron?\n 1 : Marge\n 2 : Rose\n 3 : Liz\n";
tab_reponse[4]="2";
tab_question[5] = "A qui le Groenland appartient-il ?\n 1 : A l'Autriche\n 2 : A l'Islande\n 3 : Au Danemark\n";
tab_reponse[5]="3";
tab_question[6] = "Quelle est le symbole du gaz carbonique ?\n 1 : O2\n 2 : CO2\n 3 : XY3\n";
tab_reponse[6]="2";
tab_question[7] = "Une personne agoraphobe a peur :\n 1 : du noir\n 2 : d'un lieu clos\n 3 : d'un lieu publique";
tab_reponse[7]="3";
tab_question[8] = "Lequel de ces animaux est herbivore ?\n 1 : le lion\n 2 : la vache\n 3 : le tigre\n";
tab_reponse[8]="2";
tab_question[9] = "Quelle planète a des anneaux ?\n 1 : la lune\n 2 : saturne\n 3 : venus\n";
tab_reponse[9]="2";
//fin d'initialisation
int main(int argc, char *argv[])
{
int sockfd, newsockfd, portno, clilen, pid;//declaration d'argument
struct sockaddr_in serv_addr, cli_addr;//declaration de structure
if (argc < 2)
{//verification de port
fprintf(stderr,"ERROR, no port provided\n");
exit(1);
}
sockfd = socket(AF_INET, SOCK_STREAM, 0);//declaration du type
if (sockfd < 0)
{
error("ERROR opening socket");
}
bzero((char *) &serv_addr, sizeof(serv_addr));
portno = atoi(argv[1]);//declaration de port sur portno
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(portno);
if (bind(sockfd, (struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0)
{
error("ERROR on binding");
}
listen(sockfd,5);// nb de client en attente 5
clilen = sizeof(cli_addr);//adresse du client integrer
int tab_client[1];//initialisation du tableau des clients
int i=0;
int k,z,s,r,f,m;
//debut du programme ou on va stocker les adresses des deux client
for (i=0;i<1;i++)
{
tab_desc[i] = accept(sockfd,(struct sockaddr *) &cli_addr,&clilen);
if (tab_client[i] < 0)
{
error("ERROR on accept");
bzero(buffer,256);
}
if (tab_client[0])//lancement de message pour informer que le client d'une attente
{
write(tab_client[0],"attente d'un second joueur",256);
bzero(buffer,256);
}
if (tab_client[1])
{
for(k=0;k++;k<=1)// mesage pour dire que ca va commancer
{
write(tab_client[k],"debut du jeux",256);
}
}
if (n < 0){error("ERROR writing to socket");}
}
//debut du boucle pour traiter les questions
for(z=0;z++;z<=9)
{
Q = tab_question[z];
R = tab_reponse[z];
for(s=0;s++;s<=1)
{
write(tab_client[s],Q,256);
r = read(tab_client[s],buffer,256);
if(r = R){tab_score[s]= tab_score[s] +1;}
}
}
//boucle pour indiquer les score de fin
for(f=0;f++;f<=1)
{
m = "votre score est de : ",tab_score[f];
write(tab_client[f],m,256;
}
} |
Partager