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

📄 jxtapdptest.txt

📁 JXTA协议中对等点发现协议实现,抄的 自己不太懂还是个学生呵呵
💻 TXT
字号:
import java.util.Enumeration;
import net.jxta.discovery.*;
import net.jxta.exception.*;
import net.jxta.peergroup.*;
import net.jxta.protocol.*;

public class DiscoveryDemo implements Runnable,DiscoveryListener{
    static PeerGroup netPeerGroup=null;
    private DiscoveryService discovery;
    //start to configure JXTA plat
    private void startJxta(){
         try{
              netPeerGroup=PeerGroupFactory.newNetPeerGroup();
         }catch(PeerGroupException e){
            //if fail to creat the group,put out the error and terminate the programme
            System.out.println("Fatal error:group creation failure");
            e.printStackTrace();
            System.exit(1);
    }
    //pick out the Service from Peer Group
    discovery =netPeerGroup.getDiscoveryService();
    }
    //the thread is reapted once every minite until peers are discovered and the result is put out
    public void run(){
        try{
           //add DiscoveryListener for DiscoveryResponse events
           discovery.addDiscoveryListener(this);
           while(true){
              System.out.println("Sending a Discovery Message");
              //look for peers ,every peer is allowed to have 5 response
              discovery.getRemoteAdvertisements(null,DiscoveryService.PEER,null,null,5);
              try{
                 Thread.sleep(60*1000);
              }catch(Exception e){}
            }
         }catch(Exception e){
            e.printStackTrace();
         }
     }
     //to realize DiscoveryListener,wo must define the function to resolve the response message
     public void discoveryEvent(DiscoveryEvent ev){
         DiscoveryResponseMsg res=ev.getResponse();
         String name="unknown";
         //get the response adv from Peers
         PeerAdvertisement peerAdv=res.getPeerAdvertisement();
         //some Peers can't response their PeerAdvertisement
         if(peerAdv!=null){
             name=peerAdv.getName();
         }
         System.out.println("Got a Discovery Response["+re.getResponseCount()+"elements]frome peer:"+name);
         //put out the dicovered Peer
         PeerAdvertisement adv=null;
         Enumeration enum=res.getAdvertisement();
         if(enum!=null){
           while(enum.hasMoreElements()){
              adv=(PeerAdvertisement)enum.nextElement();
              System.out.println("Peer name="+adv.getName());
           }
         }
     }
     static public void main(String args[]){
         DiscoveryDemo myapp=new DiscoveryDemo();
         myapp.startJxta();
         myapp.run();
     }
}

⌨️ 快捷键说明

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