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

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

?? nonblockingsocket.java

?? 實現非阻塞方式IO(NBIO)的java類
?? JAVA
字號:
/*  * Copyright (c) 2000 by Matt Welsh and The Regents of the University of  * California. All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice and the following * two paragraphs appear in all copies of this software. *  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * Author: Matt Welsh <mdw@cs.berkeley.edu> *  */package ninja2.core.io_core.nbio;import java.io.*;import java.net.*;/** * A NonblockingSocket is a socket which exports nonblocking input/output * streams. It is otherwise idential to a standard socket. * * Socket connection can be either blocking or nonblocking. Use of the * standard constructors causes the current thread to block until  * the connection is established. Otherwise, there are 3 ways to check * if the connection has been established:  * (1) Call <code>finishConnection</code>, * (2) Call <code>connectDone</code>, or  * (3) Create a <code>SelectSet</code> and select on the event  * <code>Selectable.CONNECT_READY</code>, then call <code>connectDone</code>. * * @see SelectSet */public class NonblockingSocket extends Socket implements Selectable {  NonblockingSocketImpl impl;  boolean is_connected;  static {    try {      System.loadLibrary("NBIO");    } catch (Exception e) {      System.err.println("Cannot load NBIO shared library");    }  }  /* Used only by NonblockingServerSocket to create an instance for accept */  NonblockingSocket() throws IOException {    impl = new NonblockingSocketImpl();  }  /**   * Create a NonblockingSocket connection to the given host and port number.   * This will block until the connection is established.   */  public NonblockingSocket(String host, int port) throws UnknownHostException, IOException {    this(InetAddress.getByName(host), port, true);  }  /**    * Create a NonblockingSocket connection to the given host and port number.   * If 'block' is true, block until the connection is done.   */  public NonblockingSocket(String host, int port, boolean block) throws UnknownHostException, IOException {    this(InetAddress.getByName(host), port, block);  }  /**    * Create a NonblockingSocket connection to the given host and port number.   * This will block until the connection is established.   */  public NonblockingSocket(InetAddress address, int port) throws UnknownHostException, IOException {    this(address, port, true);  }  /**   * Create a NonblockingSocket connection to the given host and port number.   * If 'block' is true, block until the connection is done.   */  public NonblockingSocket(InetAddress address, int port, boolean block) throws IOException {    impl = new NonblockingSocketImpl();    if (port < 0 || port > 0xFFFF) {       throw new IllegalArgumentException("port out range:"+port);     }    try {      is_connected = false;      impl.create(true);      // 'null' bind address means INADDR_ANY      impl.bind(null, 0);      impl.connect(address, port);      if (block) finishConnect(-1);    } catch (IOException e) {      impl.close();      throw e;    }  }  /**    * Block until the connection on this socket has been established.   * 'timeout' specifies the maximum number of milliseconds to block.   * A timeout of zero indicates no blocking (in which case this call   * is equivalent to <code>connectDone</code>). A timeout of -1   * causes this call to block indefinitely until the connection is    * established.   *    * @return true is the connection was established, false if still pending.    */   public boolean finishConnect(int timeout) throws SocketException {    if (timeout != 0) {      SelectSet selset = new SelectSet();      SelectItem selitem = new SelectItem(this, Selectable.CONNECT_READY);      selset.add(selitem);      int r = selset.select(timeout);      if (r == 0) {        return connectDone();      } else if (!connectDone()) {        // This should never happen -- connectDone() will throw an exception        // if there was an error        throw new SocketException("Socket connection not completed after select! This is a bug - please e-mail mdw@cs.berkeley.edu");      }      return true;    } else {      return connectDone();    }  }  /**    * Indicate whether the connection on this socket has been established.   * Throws an exception if an error occurred trying to connect.   */  public boolean connectDone() throws SocketException {    if (is_connected) return true;    if (impl.connectDone()) {      is_connected = true;      return true;    } else {      return false;    }  }  /**   * Return the remote address to which this socket is bound.   */  public InetAddress getInetAddress() {    return impl.getInetAddress();  }  /**   * Return the local address to which this socket is bound.   */  public InetAddress getLocalAddress() {    try {      return InetAddress.getLocalHost();    } catch (Exception e) {      return null; // XXX MDW - Not quite right    }  }  /**   * Return the remote port to which this socket is bound.   */  public int getPort() {    return impl.getPort();  }  /**   * Return the local port to which this socket is bound.   */  public int getLocalPort() {    return impl.getLocalPort();  }  /**   * Return an InputStream from which data on this socket can be read.   * The returned InputStream is actually a NonblockingInputStream   * and provides nonblocking semantics.   */  public InputStream getInputStream() throws IOException {    return impl.getInputStream();  }  /**   * Return an OutputStream to which data on this socket can be written.   * The returned OutputStream is actually a NonblockingOutputStream   * and provides nonblocking semantics.   */  public OutputStream getOutputStream() throws IOException {    return impl.getOutputStream();  }  /**   * Currently unimplemented.   */  public void setTcpNoDelay(boolean on) throws SocketException {    // XXX MDW Do nothing  }  /**   * Currently unimplemented.   */  public boolean getTcpNoDelay() throws SocketException {    // XXX MDW Do nothing    return false;  }  /**   * Currently unimplemented.   */  public void setSoLinger(boolean on, int val) throws SocketException {    // XXX MDW Do nothing  }  /**   * Currently unimplemented.   */  public int getSoLinger() throws SocketException {    // XXX MDW Do nothing    return -1;  }    /**   * Currently unimplemented.   */  public synchronized void setSoTimeout(int timeout) throws SocketException {    // XXX MDW Do nothing  }  /**   * Currently unimplemented.   */  public synchronized int getSoTimeout() throws SocketException {    // XXX MDW Do nothing    return 0;  }  /**   * Closes the socket.   */  public synchronized void close() throws IOException {    impl.close();  }  public String toString() {    return "NonblockingSocket[addr="+impl.getInetAddress().getHostAddress()+",port="+impl.getPort()+",localport="+impl.getLocalPort()+"]";  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人动漫一区二区| 亚洲国产一区二区三区 | 国产精品99久久久久久似苏梦涵| 欧美蜜桃一区二区三区| 青草av.久久免费一区| 日韩亚洲欧美一区二区三区| 国产一区福利在线| 国产精品久久久久久久久快鸭 | 久久久久久麻豆| 成人午夜私人影院| 亚洲免费高清视频在线| 欧美日韩在线三区| 激情成人午夜视频| 国产精品初高中害羞小美女文| 色偷偷久久一区二区三区| 亚洲午夜在线视频| 精品少妇一区二区三区在线播放| 懂色av一区二区三区蜜臀| 尤物av一区二区| 7777女厕盗摄久久久| 国产永久精品大片wwwapp| 18成人在线观看| 欧美天天综合网| 国产在线精品视频| 亚洲另类春色国产| 亚洲精品在线免费播放| 一本色道久久综合狠狠躁的推荐 | 亚洲成人动漫在线免费观看| 日韩欧美一二三四区| 成人h精品动漫一区二区三区| 亚洲小少妇裸体bbw| 久久久久久免费网| 欧美视频一区二区三区四区| 国产麻豆精品95视频| 亚洲国产精品久久久久秋霞影院 | 一级做a爱片久久| 日韩欧美高清一区| 在线日韩一区二区| 国产一区二区三区视频在线播放| 亚洲免费av高清| 国产视频亚洲色图| 欧美肥妇free| 色狠狠色狠狠综合| 国产成人免费9x9x人网站视频| 亚洲成人动漫av| 亚洲色图丝袜美腿| 国产无遮挡一区二区三区毛片日本| 欧美亚洲一区二区在线| 不卡的av网站| 国内精品国产三级国产a久久| 一区av在线播放| 中文字幕在线观看一区| 欧美精品一区二区不卡 | 色综合久久中文字幕| 国产精华液一区二区三区| 免费高清在线一区| www.综合网.com| 国产一区三区三区| 久草这里只有精品视频| 亚洲超丰满肉感bbw| 一卡二卡欧美日韩| 亚洲男同性恋视频| 国产精品二三区| 国产欧美1区2区3区| 精品欧美一区二区三区精品久久 | 亚洲一区在线免费观看| 国产精品卡一卡二| 国产香蕉久久精品综合网| 精品免费国产二区三区| 欧美一级高清大全免费观看| 欧美三级在线视频| 欧美日韩国产欧美日美国产精品| 91在线看国产| 99精品欧美一区二区三区小说| 国产不卡在线视频| 国产精一区二区三区| 国产高清不卡二三区| 国产a级毛片一区| 国产成人av一区| 成人教育av在线| 97超碰欧美中文字幕| 91在线观看成人| 91色乱码一区二区三区| 色综合色狠狠天天综合色| 在线观看视频一区二区| 欧美三级电影网站| 8x福利精品第一导航| 日韩一级在线观看| 精品伦理精品一区| 国产视频一区二区在线| 国产精品久久久久久福利一牛影视 | 最新国产精品久久精品| 亚洲男人天堂一区| 亚洲高清视频的网址| 美国毛片一区二区三区| 国产成人精品三级| 日本高清免费不卡视频| 欧美日韩亚洲丝袜制服| 日韩一区二区三区视频在线观看| 精品88久久久久88久久久| 国产精品你懂的在线| 亚洲乱码国产乱码精品精98午夜 | 99re热视频精品| 欧美私模裸体表演在线观看| 日韩一区二区免费在线电影| 国产偷v国产偷v亚洲高清| 日韩一区在线免费观看| 午夜欧美一区二区三区在线播放| 麻豆一区二区三| 99久久精品国产毛片| 91麻豆精品国产91久久久久久| 日韩精品一区在线| 亚洲日本va在线观看| 麻豆精品新av中文字幕| av在线不卡观看免费观看| 欧美午夜精品久久久| 久久综合久久综合久久| 一区二区三区中文字幕在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产很黄免费观看久久| 欧美视频一区二区三区| 国产亚洲人成网站| 亚洲国产精品影院| 成人污污视频在线观看| 在线播放国产精品二区一二区四区| 久久久一区二区| 亚洲国产精品一区二区www在线| 国产精品一区二区无线| 欧美日韩精品福利| 国产精品久久久久久亚洲毛片| 蜜臀av性久久久久蜜臀av麻豆| 91麻豆自制传媒国产之光| 久久精品视频在线看| 婷婷激情综合网| 91色视频在线| 久久久精品欧美丰满| 日本不卡在线视频| 91国模大尺度私拍在线视频| 欧美高清在线视频| 久久se精品一区二区| 91福利在线导航| 亚洲少妇最新在线视频| 国产麻豆视频一区二区| 91精品国产免费久久综合| 亚洲伦理在线精品| 成人免费福利片| 久久久久久免费毛片精品| 免费成人av在线| 欧美一区二视频| 亚洲成年人网站在线观看| 91国产丝袜在线播放| 亚洲视频一区二区在线观看| 国产成人精品亚洲777人妖| 精品国产免费人成在线观看| av不卡在线播放| 久久精品国产精品亚洲综合| 色婷婷久久久久swag精品| 国产精品传媒在线| 成人深夜在线观看| 国产精品素人一区二区| 国内精品视频一区二区三区八戒| 日韩一区二区三区免费观看| 日日夜夜一区二区| 欧美日韩不卡在线| 亚洲大尺度视频在线观看| 欧美在线你懂的| 亚洲国产欧美在线| 欧美日韩性生活| 天堂蜜桃一区二区三区| 欧美精品三级日韩久久| 亚洲国产wwwccc36天堂| 欧美久久一二区| 青青草一区二区三区| 日韩欧美国产一区二区三区 | 成人综合激情网| 中文字幕在线视频一区| 91在线播放网址| 亚洲大片精品永久免费| 3d动漫精品啪啪1区2区免费 | a亚洲天堂av| 136国产福利精品导航| 91免费视频观看| 亚洲一区av在线| 欧美精品一二三| 经典三级一区二区| 日本一区二区高清| 色呦呦国产精品| 日本美女一区二区三区视频| 欧美精品一区在线观看| 成人免费高清在线观看| 亚洲激情自拍偷拍| 正在播放一区二区| 国产一区91精品张津瑜| 亚洲特黄一级片| 欧美日韩三级一区二区| 久久精品国产久精国产爱| 国产精品国产馆在线真实露脸| 色婷婷狠狠综合| 久久97超碰色| 亚洲欧美激情在线|