Note that there are some explanatory texts on larger screens.

plurals
  1. POJava Multicast doesnt work in windows
    primarykey
    data
    text
    <p>I have this code but it doens't work in 2 diferent computers, I changed my firewall but it doesnt work.</p> <pre><code>import java.io.IOException; import java.lang.management.ManagementFactory; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.MulticastSocket; import java.rmi.RMISecurityManager; import java.util.ArrayList; import java.util.HashMap; public class TestingDota{ private static String name; public static void main(String args[]){ name = args[0]; final InetAddress group; final String address = "230.0.0.1"; final int port = 9876; try{ group = InetAddress.getByName(address); }catch(Exception e){ e.printStackTrace(); return; } HashMap&lt;String, Tupla&gt; map = new HashMap&lt;String,Tupla&gt;(); try{ final MulticastSocket socket = new MulticastSocket(port); socket.setReuseAddress(true); socket.joinGroup(group); socket.setTimeToLive(2); new Thread(){ public void run(){ while(true){ String msg = ManagementFactory.getRuntimeMXBean().getName()+ "," + name; DatagramPacket packet = new DatagramPacket(msg.getBytes(), msg.length(), group, port); try { socket.send(packet); Thread.sleep(1000); } catch (IOException e){ e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); while(true){ byte[] buf = new byte[512]; DatagramPacket packet = new DatagramPacket(buf, buf.length); socket.receive(packet); String msg = new String(packet.getData()).trim(); int index = msg.indexOf(','); String key = msg.substring(0,index); String name = msg.substring(index+1, msg.length()); long time = System.currentTimeMillis(); if(map.containsKey(key)){ Tupla t = map.get(key); t.time = time; }else{ Tupla t = new Tupla(); t.name = name; t.time = time; map.put(key, t); mostrar(map); } int size = map.size(); ArrayList&lt;String&gt; list = new ArrayList&lt;String&gt;(); for(String k : map.keySet()){ Tupla t = map.get(k); if(time - t.time&gt; 1500 ){ list.add(k); } } for(String x : list) map.remove(x); if(size &gt; map.size()){ mostrar(map); } Thread.sleep(100); } }catch(Exception e){ e.printStackTrace(); } } private static void mostrar(HashMap&lt;String, Tupla&gt; map) { for(String k : map.keySet()){ Tupla t = map.get(k); System.out.println(t.name); } System.out.println(); } static class Tupla{ String name; long time; } } </code></pre> <p>To run this program please write: $ java TestingDota someName, it works with several terminals in the same computer, but it doesnt work in diferent computers</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload