j'ai trouvé le problème, le code est bon coté client, j'avais pas fait attention au fait que dans le code du client java ce c** avait remplacer l'ip par localhost...
du coup si je tourne en local tout fonctionne, mais je n'arrive pas à créer ma socket sur le serveur sur une ip class D comme il faut pour le multicast.
je fais comme ceci:
1 2 3 4 5 6 7 8 9 10
| byte buff[];
DatagramPacket paquet;
while(!interrupted()){
try{
buff = new byte[SIZE];
paquet = new DatagramPacket(buff, SIZE, InetAddress.getByName(ip), port);
System.out.println("Attente de message: "+paquet.getAddress().getHostAddress()+":"+socket.getLocalPort());
socket.receive(paquet);
... |
et la socket est declarée ici:
socket = new DatagramSocket(port);
j'ai essayé d'utiliser le constructeur prenant l'adresse en paramètre mais j'ai une Exception: java.net.BindException: Cannot assign requested address
que se soit le client java ou cpp j'ai le même soucis, en localhost tout fonctionne, via le réseau...
j'imagine que ça vient du fait que j'utilise une ip fantome? 230.0.0.1 alors que je suis sur un réseau de classe C
vous en pensez quoi?
Partager