Bonjour et rebonjour pour ce qui m'ont lu mon topic d'en bas
voila j'ai finalement abandonné l'idée du rand et j'ai fini de faire mon programme sur la partie serveur.
Pourriez vous me donner votre avis sur ce programme.
Merci

voici le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
	}
}