⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multinetgrouplaucher.java

📁 jxta的例子
💻 JAVA
字号:
/* * MultiNetGroupLaucher.java * * Created on July 17, 2007, 9:30 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */package tutorial.multinetgroup;import java.io.File;import java.net.URI;import net.jxta.document.MimeMediaType;import net.jxta.document.XMLDocument;import net.jxta.exception.PeerGroupException;import net.jxta.peer.PeerID;import net.jxta.peergroup.NetPeerGroupFactory;import net.jxta.peergroup.PeerGroup;import net.jxta.peergroup.PeerGroupID;import net.jxta.peergroup.WorldPeerGroupFactory;import net.jxta.platform.NetworkConfigurator;import net.jxta.protocol.ModuleImplAdvertisement;import net.jxta.impl.endpoint.mcast.McastTransport;import net.jxta.impl.peergroup.StdPeerGroupParamAdv;/** * This sample shows how to construct multiple infrastructure (Network) Peer * Groups. */public class MultiNetGroupLaucher {    /**     * The name of our peer.     */    private final static String PEER_NAME = "Peer";    /**     * Configure and start the World Peer Group.     *     * @param storeHome The location JXTA will use to store all persistent data.     * @param peername  The name of the peer.     * @throws PeerGroupException Thrown for errors creating the world peer group.     * @return the world peergroup     */    public static PeerGroup startJXTA(URI storeHome, String peername) throws PeerGroupException {        NetworkConfigurator worldGroupConfig = NetworkConfigurator.newAdHocConfiguration(storeHome);        PeerID peerid = tutorial.id.IDTutorial.createPeerID(PeerGroupID.worldPeerGroupID, peername);        worldGroupConfig.setName(peername);        worldGroupConfig.setPeerID(peerid);        // Disable multicast because we will be using a separate multicast in each group.        worldGroupConfig.setUseMulticast(false);        // Instantiate the world peer group        WorldPeerGroupFactory wpgf = new WorldPeerGroupFactory(worldGroupConfig.getPlatformConfig(), storeHome);        PeerGroup wpg = wpgf.getInterface();        System.out.println("JXTA World Peer Group : " + wpg + " started!");        return wpg;    }    /**     * Configure and start a separate top-level JXTA domain.     *     * @param wpg        The JXTA context into which the domain will run.     * @param domainName The name of the domain.     * @throws PeerGroupException Thrown for errors creating the domain.     * @return the net peergroup     */    public static PeerGroup startDomain(PeerGroup wpg, String domainName) throws PeerGroupException {        assert wpg.getPeerGroupID().equals(PeerGroupID.worldPeerGroupID);        ModuleImplAdvertisement npgImplAdv;        try {            npgImplAdv = wpg.getAllPurposePeerGroupImplAdvertisement();            npgImplAdv.setModuleSpecID(PeerGroup.allPurposePeerGroupSpecID);            StdPeerGroupParamAdv params = new StdPeerGroupParamAdv(npgImplAdv.getParam());            params.addProto(McastTransport.MCAST_TRANSPORT_CLASSID, McastTransport.MCAST_TRANSPORT_SPECID);            npgImplAdv.setParam((XMLDocument) params.getDocument(MimeMediaType.XMLUTF8));        } catch (Exception failed) {            throw new PeerGroupException("Could not construct domain ModuleImplAdvertisement", failed);        }        // Configure the domain        NetworkConfigurator domainConfig = NetworkConfigurator.newAdHocConfiguration(wpg.getStoreHome());        PeerGroupID domainID = tutorial.id.IDTutorial.createPeerGroupID(domainName);        domainConfig.setInfrastructureID(domainID);        domainConfig.setName(wpg.getPeerName());        domainConfig.setPeerID(wpg.getPeerID());        domainConfig.setUseMulticast(true);        int domainMulticastPort = 1025 + (domainName.hashCode() % 60000);        domainConfig.setMulticastPort(domainMulticastPort);        // Instantiate the domain net peer group        NetPeerGroupFactory npgf1 = new NetPeerGroupFactory(wpg, domainConfig.getPlatformConfig(), npgImplAdv);        PeerGroup domain = npgf1.getInterface();        System.out.println("Peer Group : " + domain + " started!");        return domain;    }    /**     * main     *     * @param args command line arguments. (unused)     * @throws Throwable Thrown for every type of error.     */    public static void main(String args[]) throws Throwable {        final URI storeHome = new File(".jxta/").toURI();        PeerGroup wpg = startJXTA(storeHome, PEER_NAME);        PeerGroup cluster1 = startDomain(wpg, "cluster1");        PeerGroup cluster2 = startDomain(wpg, "cluster2");        cluster1.stopApp();        cluster2.stopApp();        wpg.stopApp();        System.out.println(wpg + " stopped!");                // Run GC and finalization to see what's still running.        System.gc();        System.runFinalization();        System.gc();                System.out.println("Quitting");            }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -