Bonjour,

j'ai un petit souçi. J'essaie de réaliser le début d'un serveur udp multicast mais mon appel à recvfrom n'est pas bloquant et apparamment il renvoi -1. Je ne vois pas pourquoi. Si vous pouviez m'éclairer ce serait cool. 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
#include <winsock2.h>
#include <stdio.h>
 
 
 
int main()
{
	//ACTIVATION WINSOCK
	WSADATA WSAData;
	WSAStartup(MAKEWORD(2,0), &WSAData);
 
	//DECLARATION DES VARIABLES
	char usersName[10][20] ;
 
	SOCKET sock;                                                                              
	SOCKADDR_IN sin;
 
	int sinsize = sizeof(sin) ;
 
	sock = socket(AF_INET,SOCK_DGRAM,0) ;
	sin.sin_addr.s_addr =inet_addr("224.0.0.3");
	sin.sin_family=AF_INET;
	sin.sin_port=htons(1234);
 
	bind(sock, (SOCKADDR *)&sin, sizeof(sin));
 
	//listen(sock, 0);
	printf("*** serveur WIPAV lance ***\n") ;	
 
	//SERVEUR EN ATTENTE DE CONNECTION
 
	while(1)
	{	
			char buffer[50]="" ;
			printf("En attente\n") ;
			if(recvfrom(sock, buffer, sizeof(buffer), 0, (SOCKADDR *) &sin, &sinsize)==-1)
			{	
				perror("erreur") ;
				exit(-1) ;
			}	
			printf("%s\n", buffer) ;
        }
}