Bonjour j'essaye de créer un petit chat java-c en udp.
Pour le fichier Java j'ai ceci:
principale.java:
ThreadReception.java (LMsgRecus est une List):
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();
Si je lance plusieurs clients java, ils peuvent sans problème communiquer entre eux
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());
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?
Partager