亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pipesearch.java

?? Myjxta的源代碼 基于JXTA的P2P即時通信系統
?? JAVA
字號:
/**  Copyright (c) 2001 Sun Microsystems, Inc.  All rights*  reserved.**  Redistribution and use in source and binary forms, with or without*  modification, are permitted provided that the following conditions*  are met:**  1. Redistributions of source code must retain the above copyright*  notice, this list of conditions and the following disclaimer.**  2. Redistributions in binary form must reproduce the above copyright*  notice, this list of conditions and the following disclaimer in*  the documentation and/or other materials provided with the*  distribution.**  3. The end-user documentation included with the redistribution,*  if any, must include the following acknowledgment:*  "This product includes software developed by the*  Sun Microsystems, Inc. for Project JXTA."*  Alternately, this acknowledgment may appear in the software itself,*  if and wherever such third-party acknowledgments normally appear.**  4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA"*  must not be used to endorse or promote products derived from this*  software without prior written permission. For written*  permission, please contact Project JXTA at http://www.jxta.org.**  5. Products derived from this software may not be called "JXTA",*  nor may "JXTA" appear in their name, without prior written*  permission of Sun.**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED*  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE*  DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR*  ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT*  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF*  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND*  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,*  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT*  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF*  SUCH DAMAGE.*  ====================================================================**  This software consists of voluntary contributions made by many*  individuals on behalf of Project JXTA.  For more*  information on Project JXTA, please see*  <http://www.jxta.org/>.**  This license is based on the BSD license adopted by the Apache Foundation.**  $Id: PipeSearch.java,v 1.9 2007/03/26 20:21:48 nano Exp $*/package net.jxta.myjxta.search;import net.jxta.discovery.DiscoveryEvent;import net.jxta.discovery.DiscoveryListener;import net.jxta.discovery.DiscoveryService;import net.jxta.logging.Logging;import net.jxta.myjxta.MyJXTA;import net.jxta.myjxta.dialog.Dialog;import net.jxta.myjxta.dialog.OneToOneCommandDialog;import net.jxta.myjxta.util.Group;import net.jxta.myjxta.util.Peer;import net.jxta.myjxta.util.objectmodel.PeerNode;import net.jxta.protocol.DiscoveryResponseMsg;import net.jxta.protocol.PipeAdvertisement;import java.io.IOException;import java.util.Enumeration;import java.util.logging.Level;import java.util.logging.Logger;/** * A class that implements a Search object for search of peers * * @author james todd [gonzo at jxta dot org] * @version $Id: PipeSearch.java,v 1.9 2007/03/26 20:21:48 nano Exp $ */public final class PipeSearch        extends AbstractSearch        implements DiscoveryListener {    /**     * The title for the current search     */    private static final String TITLE = "Peer Search";    /**     * A description of the current search     */    private static final String DESCRIPTION = "peers";    private static final String PREFIX =            OneToOneCommandDialog.IMFREE_COMMAND_NAME;    private static final Logger LOG = Logger.getLogger(PipeSearch.class.getName());    private Thread m_waitForConnectAndSearch;    /**     * Create a new Search object to search for peers     *     * @param group  the group in which this search is done     * @param myJxta the MyJxta instance for system wide defaults.     *               The currently selected group in this instance my be different     *               from group     */    public PipeSearch(Group group, MyJXTA myJxta) {        super(group, myJxta);        setTitle(TITLE);    }    /**     * Return a description of the current search     *     * @return a description of the current search     */    public String getDescription() {        return getDescription(DESCRIPTION);    }    /**     * Start the search with the indicated search term     *     * @param term the search term     */    public void search(String term) {        setTerm(term);        String criteria = (term.trim().length() == 0 ||                term.trim().equals(WILDCARD) ? WILDCARD : term);        cancel();        isRunning(true);        final DiscoveryService discover = getDiscovery();        // Append the real beginning string if the user wants a begin with or        // is query//        criteria = Dialog.IMFREE_USER_NAME + Dialog.IMFREE_DELIMITER +//            criteria;        criteria = PREFIX + Dialog.IMFREE_DELIMITER + criteria;        try {            process(discover.getLocalAdvertisements(DiscoveryService.ADV,                    PipeAdvertisement.NameTag, criteria));        } catch (IOException ioe) {            if (Logging.SHOW_FINE && LOG.isLoggable(Level.FINE)) {                LOG.log(Level.FINE, "Exception durng advertisement lookup", ioe);            }        }        final String criteria1 = criteria;        m_waitForConnectAndSearch = new WaitForConnectAndSearchThread(discover, criteria1, this);        m_waitForConnectAndSearch.start();    }    public void cancel() {        if (isRunning()) {            DiscoveryService discovery = getDiscovery();            if (discovery != null) {                discovery.removeDiscoveryListener(this);            }            isRunning(false);            if (m_waitForConnectAndSearch != null && m_waitForConnectAndSearch.isAlive()) {                synchronized (m_waitForConnectAndSearch) {                    m_waitForConnectAndSearch.notify();                }            }            super.cancel();        }    }    public void discoveryEvent(DiscoveryEvent de) {        DiscoveryResponseMsg rm = de.getResponse();        if (rm.getDiscoveryType() == DiscoveryService.ADV) {            process(rm.getAdvertisements());        }    }    private void process(Enumeration advertisements) {        PipeAdvertisement pa;        Object o;        String name;        while (advertisements != null &&                advertisements.hasMoreElements()) {            o = advertisements.nextElement();            if (o instanceof PipeAdvertisement) {                pa = (PipeAdvertisement) o;                name = pa.getName();                if (name != null &&                        name.startsWith(PREFIX)) {//                    name.startsWith(Dialog.IMFREE_USER_NAME)) {                    add(new PeerNode(new Peer(pa), group));                }            }        }    }    private final class WaitForConnectAndSearchThread extends Thread {        private final DiscoveryService m_discover;        private final String m_criteria1;        private boolean forceImmediately = false;        private final PipeSearch searcher;        public WaitForConnectAndSearchThread(DiscoveryService p_discover, String p_criteria1, PipeSearch searcher) {            m_discover = p_discover;            m_criteria1 = p_criteria1;            setDaemon(true);            this.searcher = searcher;        }        public synchronized void start() {            if (group.isConnected()) {                forceImmediately = true;                run(); //if we are already connected dont start an extra thread (will save resouces)                //instead start the search in the same thread            } else {                setName(this.getClass().getName() + " looking for: " + m_criteria1);                super.start();    //not connected, wait for a connect and start the remove search afterwards            }        }        /**         * wait for a connect and then start a remote search         */        public void run() {        try {            if (!group.isConnected())            { // if we are not connected do two searches... one immediatly (for ad-hoc mode/local lan peers), one after we are connected                m_discover.getRemoteAdvertisements(null, DiscoveryService.ADV,                        PipeAdvertisement.NameTag, m_criteria1, REMOTE_THRESHOLD, searcher);                int waitCounter = 1000;  //1000*500ms = maximum thread endurance                while (!group.isConnected() && isRunning() && waitCounter > 0 && !forceImmediately) {                    try {                        synchronized (this) {                            wait(500);                        }                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                    waitCounter--; //make sure this loop also terminates if no connection can be archived at all                }            }                m_discover.getRemoteAdvertisements(null, DiscoveryService.ADV,                                PipeAdvertisement.NameTag, m_criteria1, REMOTE_THRESHOLD, searcher);            } catch(Exception e){                e.printStackTrace();            }            isRunning(false);        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区四区的| 亚洲高清不卡在线观看| 欧美日韩免费电影| 高清不卡在线观看av| 美女视频网站久久| 视频一区二区国产| 亚洲一区二三区| 国产成人激情av| 99国产一区二区三精品乱码| 国产成人丝袜美腿| 日韩欧美国产综合在线一区二区三区| 欧美色精品天天在线观看视频| 91久久精品一区二区三区| 91麻豆国产在线观看| 欧美熟乱第一页| 日韩视频永久免费| 久久久精品综合| 亚洲视频资源在线| 一区二区三区在线观看国产| 亚洲一区二区欧美日韩| k8久久久一区二区三区| k8久久久一区二区三区| 久久久精品影视| 国产福利精品一区| 国产日韩欧美a| 亚洲综合小说图片| 91在线视频网址| 中文字幕不卡三区| 亚洲成精国产精品女| 国产乱理伦片在线观看夜一区| 国产99精品在线观看| 亚洲精品一区二区三区福利| 日本一区二区三区四区在线视频| 久久精品国产一区二区| fc2成人免费人成在线观看播放 | 欧美少妇xxx| 亚洲嫩草精品久久| 久久99久久99| 91亚洲永久精品| 一区二区在线免费| 国产一区二区按摩在线观看| 色又黄又爽网站www久久| 欧美一区二区在线观看| 中文字幕欧美区| 成人短视频下载| 日韩女优制服丝袜电影| 国产一区二区三区免费在线观看| 精品欧美一区二区在线观看 | 成人激情免费电影网址| 中文字幕精品一区二区三区精品| av电影天堂一区二区在线 | 色哟哟国产精品| 午夜精品福利视频网站| 色域天天综合网| 一区二区三区四区不卡在线 | 一本一本大道香蕉久在线精品 | 欧美日韩高清在线播放| 九色综合狠狠综合久久| 国产欧美一区二区三区在线看蜜臀| 99精品在线观看视频| 亚洲高清久久久| 久久久亚洲午夜电影| aaa亚洲精品一二三区| 亚洲1区2区3区4区| 久久久亚洲精品石原莉奈| 成人精品鲁一区一区二区| 精品久久久久久无| av一本久道久久综合久久鬼色| 亚洲.国产.中文慕字在线| 久久综合五月天婷婷伊人| 日产精品久久久久久久性色| 欧洲激情一区二区| 一区二区三区在线观看欧美| 日韩精品一区二区三区视频在线观看 | 风间由美一区二区av101| 一区二区三区四区五区视频在线观看 | 在线免费视频一区二区| 美国av一区二区| 亚洲免费在线观看| 久久久美女毛片| 欧美日韩一级片网站| 国产高清成人在线| 麻豆精品精品国产自在97香蕉| 国产精品国产三级国产a| 成人免费视频caoporn| 三级在线观看一区二区| 亚洲欧洲制服丝袜| 久久先锋资源网| 欧美人妖巨大在线| 日本精品裸体写真集在线观看| 国产麻豆视频一区| 久久99最新地址| 日韩av在线播放中文字幕| 亚洲福利一区二区| 中文字幕视频一区| 91久久免费观看| 成人h版在线观看| 国产一区二区在线看| 免费成人在线网站| 国产日韩亚洲欧美综合| 欧美一区二区三区啪啪| 欧美日韩高清一区| 欧洲另类一二三四区| 色诱视频网站一区| 99久久精品免费| 99久久久国产精品免费蜜臀| 成人综合激情网| 国产成人无遮挡在线视频| 国产精品一二三四| 国精产品一区一区三区mba桃花 | 久久99精品国产麻豆不卡| 亚洲国产精品麻豆| 亚洲成人中文在线| 日韩中文字幕亚洲一区二区va在线 | 国产精品亚洲午夜一区二区三区 | 久久久久免费观看| 久久―日本道色综合久久| 精品福利在线导航| 久久一区二区三区国产精品| 久久久久久久久久久久久久久99| 精品国产一区二区三区忘忧草 | 国产成人免费视频| 粉嫩av一区二区三区| 波多野结衣欧美| 一本到高清视频免费精品| 色婷婷亚洲一区二区三区| 色呦呦一区二区三区| 欧美亚洲高清一区| 51精品久久久久久久蜜臀| 成人国产精品免费观看动漫 | 欧美国产综合色视频| 中文字幕制服丝袜一区二区三区 | 成人小视频在线| 91香蕉国产在线观看软件| 欧美在线免费播放| 日韩亚洲欧美在线| 久久精品亚洲麻豆av一区二区 | 欧美国产综合一区二区| 中文字幕日韩一区二区| 亚洲在线观看免费| 蜜臀久久99精品久久久久久9| 国产一区二区精品在线观看| 99视频热这里只有精品免费| 91福利视频网站| 欧美sm极限捆绑bd| 亚洲欧洲av另类| 日韩综合在线视频| 粗大黑人巨茎大战欧美成人| 在线影院国内精品| 精品国产一区二区亚洲人成毛片| 国产精品视频一二三| 久久久亚洲高清| 一区二区三区.www| 国产呦萝稀缺另类资源| 色婷婷综合久久久久中文一区二区| 欧美日本国产视频| 国产欧美日韩激情| 亚洲午夜电影在线| 成人禁用看黄a在线| 6080国产精品一区二区| 中文字幕欧美区| 奇米在线7777在线精品| 91在线你懂得| 久久伊99综合婷婷久久伊| 亚洲一区在线免费观看| 国产精品99精品久久免费| 欧美区在线观看| 亚洲色图视频网| 高清视频一区二区| 日韩精品一区在线| 视频一区欧美日韩| 91婷婷韩国欧美一区二区| 久久午夜老司机| 日韩在线a电影| 在线精品亚洲一区二区不卡| 国产亚洲精品超碰| 激情图区综合网| 91精品福利在线一区二区三区| ...中文天堂在线一区| 国产乱码精品一区二区三| 日韩欧美电影在线| 日韩电影在线免费观看| 色婷婷久久一区二区三区麻豆| 中文字幕av资源一区| 国产成人免费av在线| 精品国产成人系列| 欧美bbbbb| 日韩一卡二卡三卡| 日韩电影在线免费| 宅男在线国产精品| 婷婷国产在线综合| 欧美卡1卡2卡| 久久久一区二区| 国产中文字幕一区| 日韩精品一区二区三区视频| 免费av成人在线| 精品日韩欧美一区二区| 免费成人小视频| 精品国产乱码久久久久久闺蜜| 蜜桃视频在线观看一区二区|