Bonjour à toutes et à tous,

Je suis en train de réaliser un petit programme en C sous linux permettant à des clients de se connecter en TCP et j'essaie de récupérer leur message. Du coup dans mon main j'ai :
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
 
...
...
// clients étant un tableau de structures contenant entre autre le socket des clients et leur thread
if ((clients[n].socket = accept(server_socket, (struct sockaddr *) &clients[n].client_struct, &client_struct_length)) < 0) 
{
	// erreur
...
}
else
{
	if (pthread_create(&(clients[n].thread), NULL, handle_client, &n) != 0)
	{
		// erreur
...
	}
	printf("socket cree");
}
et ma fonction handle_client :
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
 
void* handle_client(void * n)
{
	int position_n = *((int *) n);
	char buffer[32];
	int received = -1;
	char result[1024];
	int result_position = 0;
	received = recv(clients[position_n].socket, buffer, BUFFSIZE, 0);
 
	while (received > 0) 
	{	
		/* Check for more data */
		strncat(result, buffer, received);
		result_position += received;
		received = recv(clients[position_n].socket, buffer, BUFFSIZE, 0);
	}
	result[result_position] = '\0';
	printf("%s", result);
Avec tout ça, je reçois rien et je trouve pas mon erreur.

Si quelqu'un arriverait à m'aider, ce serait sympa.

Merci d'avance