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

📄 workspacediscovery.java

📁 基于jxta的P2P框架的系统
💻 JAVA
字号:
package connex.core.WS;

import net.jxta.peergroup.*;
import net.jxta.discovery.*;
import net.jxta.protocol.*;
import java.util.*;
import net.jxta.document.*;

public class WorkspaceDiscovery extends Thread implements DiscoveryListener{

    private DiscoveryService discovery;

 //
    /**
     * @directed
     */
    private WorkspaceSearchListener dlistener;
    private String peerid = null;
    private int type = DiscoveryService.GROUP;
    private String attribute = null;
    private String value = null;
    private PeerGroup peerGroup;
    private int max = 0;
    private boolean b = true;
    private int myQueryID;
    public WorkspaceDiscovery(WorkspaceSearchListener dlistener) {
        this.dlistener = dlistener;

        this.discovery = Boot.netPeerGroup.getDiscoveryService();

    }

    public void activateDicovery(String value){
        this.value = value;
        this.start();

    }
    protected void deactivatediscovery(WorkspaceSearchListener dlistener){
        discovery.removeDiscoveryListener(this);
    }

    public void run() {

        try {
            // Add ourselves as a DiscoveryListener for DiscoveryResponse events
            discovery.addDiscoveryListener(this);

            System.out.println("Discovery Service started...");
            while (max < 5) {
                // wait a bit before sending a discovery message
                max++;

                System.out.println("Sending a Discovery Message");
                // look for any peergroup

                myQueryID = discovery.getRemoteAdvertisements(
                        null,
                        DiscoveryService.GROUP ,
                         "Name",
                        "ConneX: "+value+ "*",
                        20);
                try {
                    Thread.sleep(5 * 1000); //5 sec
                } catch (Exception e) {
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public void discoveryEvent(DiscoveryEvent ev) {
           DiscoveryResponseMsg msg = ev.getResponse();
           int advCount = msg.getResponseCount();

           System.out.println(advCount + " Workspaces found");
           Enumeration enumer = msg.getAdvertisements();

           while (enumer.hasMoreElements()) {

               Object obj = enumer.nextElement();

               PeerGroupAdvertisement adv = (PeerGroupAdvertisement) obj;
               System.out.println("Workspace found: " + adv.getName() );
             dlistener.receiveWorkspace(new Workspace(adv)) ;
           }

    }

}

⌨️ 快捷键说明

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