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

📄 primefind.java

📁 java p2p 内幕源代码!!!!!人民邮电出版社出版
💻 JAVA
字号:
package net.jxta.impl.shell.bin.primefind;import net.jxta.impl.shell.ShellApp;import net.jxta.impl.shell.ShellEnv;import net.jxta.impl.shell.ShellObject;import net.jxta.peergroup.PeerGroup;import net.jxta.id.ID;import net.jxta.document.Advertisement;import net.jxta.document.MimeMediaType;import net.jxta.document.StructuredTextDocument;import net.jxta.document.StructuredDocumentFactory;import net.jxta.pipe.OutputPipe;import net.jxta.endpoint.Message;import net.jxta.endpoint.MessageElement;import primecruncher.Dispatcher;import primecruncher.ResultListener;import primecruncher.ServiceConstants;import java.util.Map;import java.io.IOException;import java.io.ByteArrayInputStream;public class primefind extends ShellApp implements ResultListener {    ShellEnv environment;    Dispatcher dispatcher = null;    String result;    public primefind() {    }    /**     * Called when the shell command is started.     */    public int startApp(String[] argv) {        environment = getEnv();        if (argv.length != 2) {            return ShellApp.appParamError;        }        int low;        int high;        try {            low = Integer.parseInt(argv[0]);            high = Integer.parseInt(argv[1]);        } catch (NumberFormatException e) {            return ShellApp.appParamError;        }        dispatcher = new Dispatcher(getGroup());        dispatcher.processPrimes(low, high, this);            synchronized(this) {            try {                    wait();                } catch (InterruptedException me) {                }            }        Message mes = getGroup().getPipeService().createMessage();        MessageElement el = mes.newMessageElement("results", new MimeMediaType("text/plain"),                result.getBytes());        mes.addElement(el);        try {            outputPipe.send(mes);            StructuredTextDocument doc = (StructuredTextDocument)StructuredDocumentFactory.newStructuredDocument(                    new MimeMediaType("text/xml"), "result", result);            ShellObject so = new ShellObject("results", doc);            environment.add("results", so);        } catch (IOException e) {            e.printStackTrace();        }        return ShellApp.appNoError;    }    public void stopApp() {        super.stopApp();    }    public void help() {        println("NAME");        println("     primefind -- find prime numbers between two integers");        println(" ");        println("SYNOPSYS");        println(" ");        println("     primefind X Y");        println(" ");        println("DESCRIPTION");        println("'primefind' utilizes peers offering a prime number finding ");        println("service to search prime numbers in a distributed manner.");        println("When invoked, 'primefind' discovers peers offering that ");        println("service, distributes the list of numbers between the two");        println("parameters among those peers, and waits for the peers to");        println("respond with their results. Once all results are obtained,");        println("'primefind' produces a comma-separated list of prime numbers");        println("on its standard output. Note that this command relies on ");        println("other peers to search prime numbers; If no peer offering");        println("that service is available, 'primefind' will block until ");        println("at least one such peer is discovered.");        println(" ");        println("EXAMPLE");        println(" ");        println("    JXTA>primefind 10 100");        println(" ");        println("This command produces a list of all prime numbers between");        println("10 and 100 on its standard ouput.");        println(" ");    }    public String getDescription() {        return "Search for prime numbers";    }    public void resultEvent (Map resultMap) {        synchronized(this) {        result = (String)resultMap.get(ServiceConstants.RESULTSTRING);        if (result != null)            System.out.println("Result is not null");        System.out.println("result even called");        notifyAll();        }    }}

⌨️ 快捷键说明

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