communication Java et C en UDP
Bonjour j'essaye de créer un petit chat java-c en udp.
Pour le fichier Java j'ai ceci:
principale.java:
Code:
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:
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:
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 :aie:
Vous me conseilleriez quoi pour que ca fonctionne?