Jxta não encontra outros peers

0 respostas
F
Bem, tenho um exemplo de descobrir outros peers no netPeerGroup, não sei se esse netPeerGroup corresponde ao grupo da rede local ou um grupo global, pois o PeerGroupID é sempre o mesmo, mas se for isso, eu deveria encontrar outros peers, e isso não está funcionando. Já chequei os jars, liberei as portas específicas do windows e do roteador, mas continuo com o mesmo problema, se alguém puder me ajudar com a parte das portas é só postar, porque não sei se liberei corretamente. Aqui vai o código que testei:
import java.io.IOException;
import java.util.Enumeration;
import net.jxta.discovery.DiscoveryEvent;
import net.jxta.discovery.DiscoveryListener;
import net.jxta.discovery.DiscoveryService;
import net.jxta.exception.PeerGroupException;
import net.jxta.id.IDFactory;
import net.jxta.peer.PeerID;
import net.jxta.peergroup.PeerGroup;
import net.jxta.peergroup.PeerGroupID;
import net.jxta.platform.NetworkConfigurator;
import net.jxta.platform.NetworkManager;
import net.jxta.protocol.DiscoveryResponseMsg;
import net.jxta.protocol.PeerAdvertisement;

public class DiscoveryDemo implements Runnable, DiscoveryListener {

    static PeerGroup netPeerGroup = null;
    private DiscoveryService discovery;
    static NetworkConfigurator netconfig;
    
    // start the JXTA platform
    private void startJxta() throws IOException, PeerGroupException {
        NetworkManager manager = new NetworkManager(NetworkManager.ConfigMode.EDGE, null);
        PeerID pid = IDFactory.newPeerID(PeerGroupID.worldPeerGroupID, new String("nada").getBytes());
            
        manager.startNetwork();
            netconfig = manager.getConfigurator();
            netconfig.setPeerID(pid);
            netconfig.setTcpPort(9710);
            netconfig.setTcpIncoming(true);
            netconfig.setTcpOutgoing(true);
            netconfig.setTcpEnabled(true);
            netconfig.addRdvSeedingURI("tcp://123.123.123.123:1234");
            
            netPeerGroup = manager.getNetPeerGroup();
            System.out.println(netPeerGroup.getPeerGroupName());

        // Get the discovery service from our peer group
        discovery = netPeerGroup.getDiscoveryService();
    }

    /**
     * 35 * This thread loops forever discovering peers 36 * every minute, and
     * displaying the results. 37
     */
    public void run() {
        try {
            // Add ourselves as a DiscoveryListener for DiscoveryResponse events
            discovery.addDiscoveryListener(this);

            while (true) {
                System.out.println("Sending a Discovery Message");
                // look for any peer
                discovery.getRemoteAdvertisements(null, DiscoveryService.GROUP,
                        null, null, 0, null);

                // wait a bit before sending next discovery message
                try {
                    Thread.sleep(60 * 1000);
                } catch (Exception e) {
                }

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 3 * by implementing DiscoveryListener we must define this method 4 * to
     * deal with discovery responses 65
     */
    public void discoveryEvent(DiscoveryEvent ev) {

        DiscoveryResponseMsg res = ev.getResponse();
        String name = "unknown";

        // Get the responding peer's advertisement
        PeerAdvertisement peerAdv = res.getPeerAdvertisement();

        // some peers may not respond with their peerAdv
        if (peerAdv != null) {
            name = peerAdv.getName();
        }

        System.out.println("Got a Discovery Response ["
                + res.getResponseCount() + " elements] from peer : "
                + name);
// printout each discovered peer
        PeerAdvertisement adv = null;
        Enumeration   enume = res.getAdvertisements();

        if (  enume != null) {
            while ( 
                enume.hasMoreElements()) {
 adv = (PeerAdvertisement) 
                enume.nextElement();
 System.out.println(" Peer name = " + adv.getName());
            }
        }
    }

    static public void main(String args[]) throws IOException, PeerGroupException {
        DiscoveryDemo myapp = new DiscoveryDemo();
        myapp.startJxta();
        myapp.run();
    }
}
Criado 2 de julho de 2013
Respostas 0
Participantes 1