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

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

?? mysocket.java

?? 基于jxta的P2P框架的系統
?? JAVA
字號:
package connex.core.net;

import net.jxta.socket.JxtaSocket;
import net.jxta.endpoint.Messenger;
import net.jxta.peergroup.PeerGroup;
import net.jxta.protocol.PipeAdvertisement;
import net.jxta.protocol.PeerAdvertisement;
import net.jxta.document.StructuredDocument;
import java.io.IOException;
import net.jxta.peer.PeerID;
import net.jxta.pipe.PipeMsgEvent;

import net.jxta.socket.JxtaServerSocket;
import net.jxta.endpoint.Message;
import net.jxta.endpoint.MessageElement;
import net.jxta.document.AdvertisementFactory;
import java.io.InputStream;
import net.jxta.impl.util.pipe.reliable.Defs;
import org.apache.log4j.Level;
import net.jxta.document.StructuredDocumentFactory;
import java.util.Iterator;
import org.apache.log4j.Logger;
import net.jxta.impl.util.pipe.reliable.OutgoingMsgrAdaptor;
import net.jxta.impl.util.pipe.reliable.ReliableInputStream;
import net.jxta.endpoint.StringMessageElement;
import net.jxta.document.MimeMediaType;
import net.jxta.pipe.PipeService;
import net.jxta.document.XMLDocument;
import net.jxta.endpoint.TextDocumentMessageElement;


/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * @author unbekannt
 * @version 1.0
 */

public class MySocket extends JxtaSocket {
    private final static Logger LOG = Logger.getLogger(MySocket.class.getName());
    protected PeerAdvertisement peerAdvt;

    protected MySocket(PeerGroup group,
                       Messenger msgr,
                       PipeAdvertisement newpipe,
                       StructuredDocument credDoc,
                       boolean isStream, PeerAdvertisement peerAdv) throws
            IOException {

        super(group, msgr, newpipe, credDoc, isStream);
        setPeerAdv(peerAdv);

    }

    public MySocket(PeerGroup group,
                    PeerID peerid,
                    PipeAdvertisement pipeAd,
                    int timeout,
                    boolean stream) throws IOException {

        super(group, peerid, pipeAd, timeout, stream);
    }

    /**
    *  Create a connection request message
    *
    *@param  group   group context
    *@param  pipeAd  pipe advertisement
    *@return         the Message  object
    */
   protected Message createOpenMessage(PeerGroup group, PipeAdvertisement pipeAd) throws IOException {

       Message msg = new Message();
       PeerAdvertisement peerAdv = group.getPeerAdvertisement();
       if (myCredentialDoc == null) {
           myCredentialDoc = getCredDoc(group);
       }
       if (myCredentialDoc == null && pipeAd.getType().equals(PipeService.UnicastSecureType)) {
           throw new IOException("No credentials established to initiate a secure connection");
       }
       if (LOG.isEnabledFor(Level.DEBUG)) {
           LOG.debug("Requesting connection [isStream] :"+isStream);
       }
       try {
           if (myCredentialDoc != null) {
               msg.addMessageElement(JxtaServerSocket.nameSpace,
                                     new TextDocumentMessageElement(JxtaServerSocket.credTag,
                                                                    (XMLDocument) myCredentialDoc, null));
           }

           msg.addMessageElement(JxtaServerSocket.nameSpace,
                                 new TextDocumentMessageElement(JxtaServerSocket.reqPipeTag,
                                                                (XMLDocument) pipeAd.getDocument(MimeMediaType.XMLUTF8), null));

           msg.addMessageElement(JxtaServerSocket.nameSpace,
                                 new StringMessageElement(JxtaServerSocket.streamTag,
                                                          Boolean.toString(isStream),
                                                          null));
           msg.addMessageElement(JxtaServerSocket.nameSpace,
                                 new TextDocumentMessageElement(JxtaServerSocket.remPeerTag,
                                                                (XMLDocument) peerAdv.getDocument(MimeMediaType.XMLUTF8), null));
           return msg;
       } catch (Throwable t) {
           if (LOG.isEnabledFor(Level.DEBUG)) {
               LOG.debug("error getting element stream", t);
           }
           return null;
       }
   }

    protected static Messenger lightweightOutputPipe1(PeerGroup group,
            PipeAdvertisement outputPipeAdv,
            PeerAdvertisement peerAdv) {

        return lightweightOutputPipe(group, outputPipeAdv, peerAdv);
    }


    /**
      * {@inheritDoc}
      */
     public void pipeMsgEvent(PipeMsgEvent event) {

         Message message = event.getMessage();
         if (message == null) {
             return;
         }

         MessageElement element = null;
         if (!bound) {
             // look for a remote pipe answer
             element = (MessageElement)
                       message.getMessageElement(JxtaServerSocket.nameSpace,
                                                 JxtaServerSocket.remPipeTag);

             if (element != null) {
                 // connect response
                 try {
                     PeerAdvertisement peerAdv = null;
                     InputStream in = element.getStream();
                     PipeAdvertisement pa = (PipeAdvertisement)
                                            AdvertisementFactory.newAdvertisement(element.getMimeType(), in);
                     element = message.getMessageElement(JxtaServerSocket.nameSpace, JxtaServerSocket.remPeerTag);
                     if (element != null) {
                         in = element.getStream();
                         peerAdv = (PeerAdvertisement)
                                   AdvertisementFactory.newAdvertisement(element.getMimeType(), in);
                     } else {
                         return;
                     }

                     element = message.getMessageElement (JxtaServerSocket.nameSpace, JxtaServerSocket.credTag);
                     if (element != null) {
                         in = element.getStream();
                         credentialDoc = (StructuredDocument)
                                         StructuredDocumentFactory.newStructuredDocument(element.getMimeType(), in);
                     }

                     element = message.getMessageElement (JxtaServerSocket.nameSpace, JxtaServerSocket.streamTag);
                     if (element != null) {
                         isStream = (element.toString().equals("true"));
                     }
                     msgr = lightweightOutputPipe(group, pa, peerAdv);
                     if (msgr == null) {
                         // let the connection attempt timeout
                         if (LOG.isEnabledFor(Level.ERROR)) {
                             LOG.error("Unable to obtain a back messenger");
                         }
                         return;
                     }
                     if (isStream) {
                         // Create the input stream right away, otherwise
                         // the first few messages from remote will be lost, unless
                         // we use an intermediate queue.
                         // FIXME: it would be even better if we could create the
                         // input stream BEFORE having the output pipe resolved, but
                         // that would force us to have the MsrgAdaptor block
                         // until we can give it the real pipe or msgr... later.
                         createRis();
                     }
                     synchronized (finalLock) {
                         waiting = false;
                         finalLock.notifyAll();
                     }
                 } catch (IOException e) {
                     if (LOG.isEnabledFor(Level.ERROR)) {
                         LOG.error("failed to process response message", e);
                     }
                 }
             }
         }
         //net.jxta.impl.util.MessageUtil.printMessageStats(message, true);
         // look for close request
         element = (MessageElement)
                   message.getMessageElement(JxtaServerSocket.nameSpace,
                                             JxtaServerSocket.closeTag);
         if (element != null) {
             if (element.toString().equals("close")) {
                 try {
                     if (LOG.isEnabledFor(Level.DEBUG)) {
                         LOG.debug("Received a close request");
                     }
                     closeFromRemote();
                 } catch (IOException ie) {
                     if (LOG.isEnabledFor(Level.ERROR)) {
                         LOG.error("failed during closeFromRemote", ie);
                     }
                 }
             } else if (element.toString().equals("closeACK")) {
                 if (LOG.isEnabledFor(Level.DEBUG)) {
                     LOG.debug("Received a close acknowledgement");
                 }
                 synchronized(closeLock) {
                     closeLock.notify();
                 }
             }
         }

         if (!isStream) {
             // isthere data ?
             element = (MessageElement)
                       message.getMessageElement(JxtaServerSocket.nameSpace, JxtaServerSocket.dataTag);
             if (element == null) {
                 return;
             }

             try {
                 queue.push(element, -1);
             } catch (InterruptedException e) {
                 if (LOG.isEnabledFor(Level.DEBUG)) {
                     LOG.debug("Interrupted", e);
                 }
             }
             return;
         }

         Iterator i =
             message.getMessageElements(Defs.NAMESPACE, Defs.MIME_TYPE_ACK);

         if (i != null && i.hasNext()) {
             if (ros != null) {
                 ros.recv(message);
             }
             return;
         }

         i = message.getMessageElements(Defs.NAMESPACE, Defs.MIME_TYPE_BLOCK);
         if (i != null && i.hasNext()) {

             // It can happen that we receive messages for the input stream
             // while we have not finished creating it.
             try {
                 synchronized (finalLock) {
                     while (waiting) {
                         finalLock.wait(timeout);
                     }
                 }
             } catch (InterruptedException ie) {}

             if (ris != null) {
                 ris.recv(message);
             }
         }
     }

     private void createRis() {

         if (outgoing == null) {
             outgoing = new OutgoingMsgrAdaptor(msgr, retryTimeout);
         }
         if (ris == null) {
             ris = new ReliableInputStream(outgoing, retryTimeout);
         }
     }





    private void setPeerAdv(PeerAdvertisement peerAdv) {
        this.peerAdvt = peerAdv;
    }


    public PeerAdvertisement getRemotePeerAdv() {
        return this.peerAdvt;
    }

    public String getRemotePeerID() {
        return this.peerAdvt.getPeerID().toString();
    }

    public String getRemotePeerName() {
        return this.peerAdvt.getName();
    }


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲男人的天堂在线观看| 成人爱爱电影网址| 欧亚洲嫩模精品一区三区| 国产精品你懂的在线| 成人免费观看av| 亚洲精品视频免费看| 色婷婷av久久久久久久| 天天操天天干天天综合网| 欧美一区二区三区四区五区 | 黄色小说综合网站| 国产午夜精品一区二区三区嫩草 | 99久久精品免费| 美女视频黄 久久| 久久精品一区二区三区四区| 精品免费国产一区二区三区四区| 国产精品69久久久久水密桃| 亚洲日本乱码在线观看| 制服丝袜亚洲色图| 国产jizzjizz一区二区| 日韩电影免费在线观看网站| 久久久久99精品国产片| 日本高清免费不卡视频| 国产成人精品免费| 秋霞午夜av一区二区三区| 中文字幕色av一区二区三区| 欧美成人免费网站| 中文无字幕一区二区三区| 欧美性三三影院| 日本福利一区二区| 日韩欧美一级二级| 欧美精品丝袜久久久中文字幕| 成人性生交大片免费看在线播放| 一本色道久久综合亚洲91| 日韩一区二区在线看片| 欧美在线观看一区| 久久久99精品免费观看不卡| 国产精品国产三级国产aⅴ中文| 日韩西西人体444www| 国产精品毛片高清在线完整版| 亚洲国产裸拍裸体视频在线观看乱了 | 精品国产制服丝袜高跟| 欧美日韩午夜影院| 欧美日韩卡一卡二| 欧美日韩成人高清| 日本一区二区三区国色天香| 亚洲精品在线观看网站| 亚洲女性喷水在线观看一区| 麻豆精品国产91久久久久久| 91蜜桃网址入口| 成+人+亚洲+综合天堂| 日韩欧美专区在线| 亚洲在线成人精品| 亚洲成人午夜电影| 视频一区欧美精品| 日韩电影在线免费观看| 91在线一区二区| 国产亚洲一区字幕| 激情小说亚洲一区| 91精品国产一区二区三区蜜臀| 亚洲欧美激情小说另类| 成人免费视频视频在线观看免费| 日韩一区二区免费在线观看| 亚洲制服欧美中文字幕中文字幕| 成人av在线网站| 国产午夜精品在线观看| 日韩国产欧美视频| 欧美日韩一区二区三区高清| 亚洲三级理论片| 不卡免费追剧大全电视剧网站| 久久久久国产精品厨房| 国产精品亚洲人在线观看| 欧美tk—视频vk| 国产一区二区三区日韩 | 久久久久国产精品免费免费搜索| 三级欧美在线一区| 4438x亚洲最大成人网| 亚洲一区二区三区四区五区黄| 91天堂素人约啪| 亚洲免费观看高清| 欧美色手机在线观看| 香蕉影视欧美成人| 日韩欧美专区在线| 国产剧情一区二区三区| 久久先锋影音av| 樱花影视一区二区| 欧洲精品在线观看| 丝袜美腿一区二区三区| 欧美电影免费观看高清完整版| 青草国产精品久久久久久| 精品日韩一区二区| 国产精品影视网| 国产精品麻豆视频| 91极品视觉盛宴| 久久精品国产秦先生| eeuss影院一区二区三区 | 日韩精品一区二区三区在线播放| 日本伊人色综合网| 久久精品人人做人人爽97| 波多野结衣在线一区| 一区二区三区影院| 成人午夜在线播放| 亚洲午夜一区二区| 久久新电视剧免费观看| 成人污视频在线观看| 亚洲妇女屁股眼交7| 欧美成人激情免费网| www.日本不卡| 秋霞成人午夜伦在线观看| 久久久蜜桃精品| 欧美专区日韩专区| 国产一区二区三区黄视频 | 欧美在线播放高清精品| 久久99久久精品欧美| 在线不卡免费av| 国产99一区视频免费| 亚洲成国产人片在线观看| 久久精品水蜜桃av综合天堂| 色欧美片视频在线观看| 美腿丝袜亚洲三区| 成人欧美一区二区三区小说| 欧美一区二区三区视频在线观看| 国产91丝袜在线播放九色| 日韩在线观看一区二区| 亚洲国产成人一区二区三区| 欧美久久久影院| 99久久精品国产一区二区三区| 美国十次综合导航| 亚洲一区二区四区蜜桃| 欧美激情一区三区| 日韩精品一区二区三区视频播放 | 视频一区视频二区中文字幕| 国产欧美精品一区aⅴ影院| 欧美另类久久久品| 色猫猫国产区一区二在线视频| 国产精品综合二区| 欧美a一区二区| 亚洲成av人片一区二区梦乃 | 日本丶国产丶欧美色综合| 国产综合久久久久久鬼色 | 亚洲卡通动漫在线| 国产色产综合产在线视频| 日韩一卡二卡三卡国产欧美| 欧美日韩另类一区| 欧美色图在线观看| 欧美日韩亚洲国产综合| 欧洲一区二区三区在线| 色噜噜狠狠色综合欧洲selulu| www.亚洲国产| 欧美怡红院视频| 色婷婷亚洲精品| 色中色一区二区| 日本久久一区二区三区| 91麻豆文化传媒在线观看| 不卡一区二区三区四区| 9人人澡人人爽人人精品| 成人性视频免费网站| 成人毛片在线观看| 一本色道久久加勒比精品| 91麻豆免费观看| 欧美日韩一区二区在线观看视频| 欧美网站大全在线观看| 欧美性感一类影片在线播放| 欧美日韩国产成人在线免费| 欧美日韩一区国产| 欧美电影免费观看高清完整版在线观看| 日韩一区二区三区视频在线观看| 欧美成人欧美edvon| 国产欧美精品日韩区二区麻豆天美| 中日韩av电影| 一级日本不卡的影视| 爽好多水快深点欧美视频| 精品一区二区三区视频在线观看 | 欧美精品久久天天躁| 日韩一区二区在线观看| 日本一区二区视频在线观看| 亚洲婷婷在线视频| 丝袜a∨在线一区二区三区不卡| 免费国产亚洲视频| 成人激情校园春色| 7777精品久久久大香线蕉| 欧美α欧美αv大片| 国产精品久久看| 免费一级片91| www.视频一区| 日韩一区二区免费在线观看| 国产亚洲va综合人人澡精品| 亚洲免费在线视频| 看片网站欧美日韩| 色欧美日韩亚洲| 久久女同性恋中文字幕| 亚洲在线观看免费| 国产凹凸在线观看一区二区| 欧美在线一二三四区| 精品少妇一区二区三区免费观看| 综合久久国产九一剧情麻豆| 免费看欧美美女黄的网站| 成人91在线观看| 久久午夜色播影院免费高清| 夜夜精品视频一区二区| 粉嫩欧美一区二区三区高清影视|