Tout dabord bonjour,

Je viens à vous car j'ai un code qui me permet de chatter avec une ou plusieurs personnes via les ports de mon réseau. Mais quand j'ai plus de 1 utilisateur, mon programme attend que le premier connecté finisse de rentrer son message pour voir les autres.
J'ai donc effectué des rechercher, et j'ai trouvé la fonction select ! mais quand j'essaie de l'ajouter à mon programme, c'est la que sa coinse.

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
 
struct sockaddr_in addr;
	addr.sin_family=AF_INET;
	int socke=addr.sin_port=htons(2572);
 
struct in_addr addr_en;
	addr_en.s_addr=INADDR_ANY;
 
	addr.sin_addr=(addr_en);
 
**********************************************
 
while(nn<3)
{
printf("On rentre dans la boucle...\n");
sock=accept(DesSocket,&addr,&addrlen2);
	if (sock<0)
		{
			printf("erreur accept\n");
			exit(0);
		}
	printf("accept reussi houra\n");
 
nn=nn+1;
	printf("avant select\n");
fd_set rfds;
 
 
FD_ZERO(&rfds);
FD_SET (sock_a, &rfds);
 
int retval= select (FD_SETSIZE,&rfds,NULL,NULL,NULL);
	printf("après select\n");
 
switch (retval)
	{
		case 0:
		printf("erreur select\n");
		exit(0);
		case -1:
		printf("erreur select\n");
		exit(0);
 
		default:
			if(FD_ISSET(socke,&rfds))
			{
				nb=recv(sock,buffer,sizeof(buffer),0);
					if(nb<0)
						{
						printf("reception impossible\n");
						exit(0);
						}
 
				printf("message recu du client : %s \n",buffer);
			}
	}
(ps: les étoiles sont une partie du programme que je n'ai pas mis
mon programme s'arrette tout le temps dans la fonction select.

merci de m'aider car là je suis totalement perdu