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

📄 peergrouptool.java

📁 基于JXTA的P2P交通仿真程序
💻 JAVA
字号:
//import java.io.*;
import net.jxta.document.*;
import net.jxta.protocol.*;
import net.jxta.peergroup.*;
//import net.jxta.discovery.*;
//import net.jxta.id.*;
import net.jxta.exception.*;
import net.jxta.credential.*;
import net.jxta.membership.*;
/**
 *
 * @author  Daniel Brookshier 
 */
public class PeerGroupTool{
    
    /** Creates a new instance of PeerGroupTool */
    protected PeerGroupTool() {
    }
    /**
     * Create a new peer group and join it. The null authenticator is used.
     */
    public static PeerGroup createAndJoinPeerGroup(PeerGroup parent, String peerGroupName, PeerGroupID peerGroupID)throws Exception{
        
        PeerGroupAdvertisement advertisement = createPeerGroupAdvertisement(parent,peerGroupName,  peerGroupID);
        PeerGroup peerGroup = createNewPeerGroup(parent, advertisement);
        joinPeerGroup(peerGroup, null);
        System.out.println("completed group");
        return peerGroup;
    }
    /**
     * Create a peer group advertisement.
     */
    public static PeerGroupAdvertisement createPeerGroupAdvertisement(PeerGroup parent,String groupName,  PeerGroupID peerGroupID) throws Exception {
        ModuleImplAdvertisement moduleImplAdvertisement = parent.getAllPurposePeerGroupImplAdvertisement();
        //parent.getDiscoveryService().publish(moduleImplAdvertisement, DiscoveryService.ADV);
        parent.getDiscoveryService().publish(moduleImplAdvertisement);
        parent.getDiscoveryService().remotePublish(moduleImplAdvertisement);
        PeerGroupAdvertisement peerGroupAdvertisement = (PeerGroupAdvertisement)AdvertisementFactory.newAdvertisement(PeerGroupAdvertisement.getAdvertisementType());
        peerGroupAdvertisement.setName(groupName);
        peerGroupAdvertisement.setPeerGroupID(peerGroupID);
        peerGroupAdvertisement.setModuleSpecID(moduleImplAdvertisement.getModuleSpecID());
        return peerGroupAdvertisement;
    }
    /**
     * Create the Peer Group object from an advertisement.
     */
    public static PeerGroup createNewPeerGroup(PeerGroup parent, PeerGroupAdvertisement peerGroupAdvertisement) throws PeerGroupException {
        return parent.newGroup(peerGroupAdvertisement);
    }
    /** 
     * Join the peer group.
     */
    public static void joinPeerGroup(PeerGroup peerGroup, StructuredDocument credentials) throws PeerGroupException, ProtocolNotSupportedException {
        AuthenticationCredential authenticationCredential = new AuthenticationCredential(peerGroup, null, credentials);
        MembershipService membershipService = (MembershipService) peerGroup.getMembershipService();
        Authenticator authenticator = membershipService.apply(authenticationCredential);
        
        if (authenticator.isReadyForJoin()){
            membershipService.join(authenticator);
        }
    }
    
}

⌨️ 快捷键说明

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