Page 1 of 1
Multicast over local network -java
Posted: Mon Feb 02, 2015 7:07 pm
by spero
προσπαθω να κάνω multicast σε java, φτιαχνω ένα thread στον πελάτη και ένα thread στον σερβερ.To thread στον server περιμένει μυνήματα, το thread στον πελάτη στέλνει ένα αίτημα και περιμένει μια στάνταρ απάντηση απο τον server. όταν τρέχω client-server στο ιδιο μηχάνημα δουλεύει, client εδω, σερβερ εκεί οχι.firewall κλειστά και στους 2.Καμιά ιδέα?
Re: Multicast over local network -java
Posted: Mon Feb 02, 2015 7:12 pm
by moody
Ports ? Ανοιχτά ;
Re: Multicast over local network -java
Posted: Mon Feb 02, 2015 7:31 pm
by spero
sστο router? αφου οτι κάνω είναι εντός δικτύου ...
Re: Multicast over local network -java
Posted: Mon Feb 02, 2015 9:26 pm
by MoonShadow
Κάτι μου λέει ότι δε χρησιμοποιείς multicast IP.Μάλλον αφήνεις localhost ενώ πρέπει να βάλεις multicast IP (range 224.0.0.0 έως 239.255.255.255,νομίζω έχει και κάποιες δεσμευμένες δεν θυμάμαι ακριβώς ποιες είναι).Εάν παίζεις με localhost,τότε client+server που τρέχουν στο ίδιο pc θα ανταλλάξουν επιτυχώς τα μηνύματα τους.
Re: Multicast over local network -java
Posted: Mon Feb 02, 2015 9:35 pm
by spero
client
Code: Select all
/*Bind the sockets*/
listeningSocket = new DatagramSocket(6000);
listeningSocket.setReuseAddress(true);
querySocket = new MulticastSocket(4400);
querySocket.setLoopbackMode(false);
querySocket.setTimeToLive(10);//--------------
group = InetAddress.getByName("230.0.1.5");
querySocket.joinGroup(group);
System.out.println("joined multicast group");
answer = new DatagramPacket(buff, buff.length);
dummyPacket = new DatagramPacket(buff, buff.length, group, 4400);
server
Code: Select all
listeningSocket=new MulticastSocket(4400);
listeningSocket.setReuseAddress(true);
listeningSocket.setTimeToLive(10);//-------------------------
responseSocket=new DatagramSocket();//fill later
multicastGroup=InetAddress.getByName(("230.0.1.5"));
listeningSocket.joinGroup(multicastGroup);
signaturePacket=new DatagramPacket(buffer, buffer.length);
reqPacket=new DatagramPacket(buffer, buffer.length);