Bonjour j'essaye de créer un petit chat java-c en udp.

Pour le fichier Java j'ai ceci:

principale.java:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
adresseGroupe = InetAddress.getByName("234.5.5.9");
socketGroupe = new MulticastSocket(5555);
socketGroupe.joinGroup(adresseGroupe);
thr = new ThreadReception(nomCli, socketGroupe, jListMshRecus);
thr.start();
ThreadReception.java (LMsgRecus est une List):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
byte[] buf = new byte[1000];
DatagramPacket dtg = new DatagramPacket(buf, buf.length);
socketGroupe.receive(dtg);
LMsgRecus.add(new String(buf).trim());
Si je lance plusieurs clients java, ils peuvent sans problème communiquer entre eux

J'aimerais faire un petit client c (unix) qui ne ferais, pour l'instant,
qu'envoyer un message a tous les autres chats (java ou c)

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
#define HELLO_PORT 5555
#define HELLO_GROUP "234.5.5.9"

int main()
{
     struct sockaddr_in addr;
     int fd, cnt;
     struct ip_mreq mreq;
     char *message="Hello, World!";

     if ((fd=socket(AF_INET,SOCK_DGRAM,0)) < 0) {
	  perror("socket");
	  exit(1);
     }

     memset(&addr,0,sizeof(addr));
     addr.sin_family=AF_INET;
     addr.sin_addr.s_addr=inet_addr(HELLO_GROUP);
     addr.sin_port=htons(HELLO_PORT);
     
     while (1) {
	  if (sendto(fd,message,sizeof(message),0,(struct sockaddr *) &addr,
		     sizeof(addr)) < 0) {
	       perror("sendto");
	       exit(1);
	  }
	  sleep(1);
     }
}

L'envoit se fait sans erreur mais les clients java ne les récupère pas

Vous me conseilleriez quoi pour que ca fonctionne?