📄 discoveryserver.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package jxta5;import net.jxta.discovery.DiscoveryEvent;import net.jxta.discovery.DiscoveryListener;import net.jxta.discovery.DiscoveryService;import net.jxta.document.Advertisement;import net.jxta.document.AdvertisementFactory;import net.jxta.id.IDFactory;import net.jxta.peergroup.PeerGroup;import net.jxta.peergroup.PeerGroupID;import net.jxta.platform.NetworkManager;import net.jxta.pipe.PipeService;import net.jxta.protocol.DiscoveryResponseMsg;import net.jxta.protocol.PipeAdvertisement;import java.io.File;import java.util.Enumeration;public class DiscoveryServer implements DiscoveryListener{ private transient NetworkManager manager; private transient DiscoveryService discovery; public DiscoveryServer(){ try{ manager=new NetworkManager(NetworkManager.ConfigMode.EDGE,"DiscoveryClient",new File(new File(".cache"),"DiscoveryClient").toURI()); manager.startNetwork(); }catch(Exception e){ e.printStackTrace(); System.exit(-1); } PeerGroup netPeerGroup=manager.getNetPeerGroup(); discovery=netPeerGroup.getDiscoveryService(); } public static void main(String args[]){ DiscoveryServer disocveryServer=new DiscoveryServer(); disocveryServer.start(); } public void start(){ long lifetime=60*2*1000L; long expiration=60*2*1000L; long waittime=10L; try{ while(true){ PipeAdvertisement pipeAdv=getPipeAdvertisement(); // System.out.println(pipeAdv.toString()); discovery.publish(pipeAdv,lifetime,expiration); discovery.remotePublish(pipeAdv, expiration); try{ // System.out.println("Sleeping for:"+waittime); Thread.sleep(waittime); }catch(Exception e){ } } }catch(Exception e){ e.printStackTrace(); }} public void discoveryEvent(DiscoveryEvent ev){ DiscoveryResponseMsg res=ev.getResponse(); System.out.println("[Got aDiscovery Response["+res.getResponseCount()+"element] from peer:"+ev.getSource()+"]"); Advertisement adv; Enumeration en=res.getAdvertisements(); if(en!=null){ while(en.hasMoreElements()){ adv=(Advertisement)en.nextElement(); System.out.println(adv); } } }public static PipeAdvertisement getPipeAdvertisement(){ PipeAdvertisement advertisement=(PipeAdvertisement)AdvertisementFactory.newAdvertisement(PipeAdvertisement.getAdvertisementType()); advertisement.setPipeID(IDFactory.newPipeID(PeerGroupID.defaultNetPeerGroupID)); advertisement.setType(PipeService.UnicastType); return advertisement;}public void stop(){ manager.stopNetwork();}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -