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

📄 ping.java

📁 Java p2p程序设计2002年版
💻 JAVA
字号:
package net.jxta.impl.shell.bin.ping;import net.jxta.impl.shell.*;import java.io.*;import java.util.*;import net.jxta.exception.*;import net.jxta.discovery.*;import net.jxta.endpoint.*;import net.jxta.pipe.*;import net.jxta.peergroup.*;import net.jxta.document.*;import net.jxta.id.*;import net.jxta.protocol.*;import java.util.*;/** * The ping command class. This class essentially takes the input and coordinates * the execution of PingPeer. */public class ping extends ShellApp  implements PingListener, PingReplyListener {        private DiscoveryService discovery=null;        private ShellEnv env = null;    private static final int WaitingTime = 2000;    private static final int  MAXRETRIES = 5;    static ping pinger;    PingPeer pingPeer;        public ping() {        pinger = this;    }        public static void println2(String str) {        pinger.println(str);    }        public void stopApp() {    }            public int startApp(String[] args) {                try {            env = getEnv();            discovery= group.getDiscoveryService();            //flushAds();            pingPeer = new PingPeer(discovery,group,env);                        // Notify me when certain events happen so I can respond            // in my own way            pingPeer.addPingReplyListener(this);            pingPeer.addPingListener(this);                        if(args.length == 1 && "-listen".equals(args[0]))                pingPeer.listen();            else if(args.length == 1 && "-propagate".equals(args[0])) {                println("Send propagate ping request...");                pingPeer.propagate();            } else if(args.length>0) {                List list = (List)Arrays.asList(args);                pingPeers(list);            }            else {                help();            }            return 0;        } catch (PingException e) {            return 1;        }    }                /**     * This method takes the list of peers provided on command line     * looks up their corresponding unicast ping pipes, and pings them.      */    private void pingPeers(List names) {        Iterator it = names.iterator();                while(it.hasNext()) {            String name = (String)it.next();            println("Sending ping request to "+name+" ...");            try {                pingPeer.ping(name);            } catch (PingException pe) {                println("ping exception: "+name);            }        }            }            /**     * Flush current cache of advertisements.     */    private void flushAds() {        try {            discovery.flushAdvertisements(null,DiscoveryService.ADV);        } catch (IOException e) {        }    }        /**     * Callback invoked when a ping reply message     * is received.     * @param event The PingReplyEvent     * @see PingReplyEvent     * @see PingReplyHandler     */    public void pingReply(PingReplyEvent event) {        long pdiff  =   event.getPriorDifferential(); // returns the first leg duration        long diff   =   event.getDifferential(); // returns the second leg duration        long tstamp =   event.getTimestamp(); // returns time event was received        long ostamp =   event.getOriginTimestamp(); // returns time event was dispatched        String pname =  event.getPeerName();        println("");        // display reply data.        println(pname+": "+pdiff+"ms "+diff+"ms ");    }        /**     * Callback invoked when a ping event occurs     * @param event The PingEvent     */    public void pingEvent(PingEvent event) {        println("");        println("Pinged by "+event.getPeerName()+"....");    }        public String getDescription() {        return "Send a ping request to another peer and receive a response if it is alive.";    }    public void help() {        println("NAME");        println("     ping  - Send a ping request to another peer and receive a response if it is alive.");        println(" ");        println("SYNOPSIS");        println(" ");        println("     ping [-listen] [-propagate] <peername>");        println(" ");        println("DESCRIPTION");        println(" ");        println("'ping' is a command that can be used to determine if remote");        println("peers that are listening for pings are 'alive'.");        println("Ping will recieve ping responses asynchronously and the times");        println("involved in the ping messages are recoreded and displayed.");        println(" ");        println("EXAMPLE");        println(" ");        println("    JXTA> ping -listen");        println("    JXTA> ping");    }        }

⌨️ 快捷键说明

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