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

📄 discoveryserver.java

📁 JXTA发布公告的一个小程序
💻 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 + -