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

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

?? tcpbench.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> *  *//* This is a Java TCP communication benchmark capable of using either * blocking or nonblocking sockets. Since it only uses a single  * client-server socket, it is mainly used to measure latency and bandwidth * over a single connection. *  * To run: * *  On the 'server' machine, do: *    java TCPBench [-n] [-s] recv <remote host> <num messages> <message size> *  where <remote host> can be anything, <num messages> is the number of *  messages to send, and <message size> is the size of each message. * *  On the 'client' machine, do: *    java TCPBench [-n] [-s] send <remote host> <num messages> <message size> *  where <remote host> is the hostname of the 'server', <num messages>  *  is the number of messages to send, and <message size> is the size of  *  each message. * *  Use -n to specify nonblocking sockets, and -s to specify that the *  select interface should be used. * */import java.net.*;import java.io.*;import ninja2.core.io_core.nbio.*;public class TCPBench {  private static final boolean DEBUG = false;  /* Pingpong */  private static final boolean DEBUG2 = false; /* Bandwidth */  private static final int PORTNUM = 5721;  private static final int SELECT_TIMEOUT = 10000;  private static boolean sending;  private static boolean nonblocking;  private static boolean useselect;  private static int NUM_MESSAGES;  private static int MESSAGE_SIZE;  private static Socket sock;   private static SelectSet read_selset, write_selset;  private static SelectItem read_selitem, write_selitem;  private static void printResults(String msg, int numiters, int message_size, long t1, long t2) {    double usec = (t2-t1)*1.0e3;    double usecper = (usec/numiters);    double megabits = (message_size*numiters*8.0)/(1024*1024);    double bw = (megabits * 1.0e3)/(t2-t1);    System.out.println(msg+":");    System.out.println("\t"+numiters+" "+message_size+"-byte messages in "+usec+" usec, or "+usecper+" usec/iter.");    System.out.println("\t"+bw+" megabits/sec.");  }  private static void doPingpong() throws IOException {    OutputStream os = sock.getOutputStream();    InputStream is = sock.getInputStream();    NonblockingOutputStream nbos = null;    NonblockingInputStream nbis = null;    if (nonblocking) {      nbos = (NonblockingOutputStream)os;      nbis = (NonblockingInputStream)is;    }    byte barr[] = new byte[MESSAGE_SIZE];    byte barr2[] = new byte[MESSAGE_SIZE];    int i;    long t1, t2;    for (i = 0; i < barr.length; i++) {      barr[i] = (byte)(i & 0xff);    }    System.out.println("Starting pingpong test: message size "+MESSAGE_SIZE+", num messages "+NUM_MESSAGES+", nonblocking="+nonblocking+", useselect="+useselect);    if (sending) {      t1 = System.currentTimeMillis();      for (i = 0; i < NUM_MESSAGES; i++) {        if (DEBUG) System.err.println("["+i+"] Sender: Sending message...");	if (nonblocking) { 	  int n = 0;	  while (n < barr.length) {            if (useselect) {	      while ((write_selitem.revents & Selectable.WRITE_READY) == 0) {  	        write_selset.select(SELECT_TIMEOUT);              }              if (DEBUG) System.err.println("["+i+"] Sender: Select says write is ready");	      write_selitem.revents = 0;	    }	    n += nbos.nbWrite(barr, n, barr.length - n);	  }        } else {	  /* Blocking */	  os.write(barr);	  os.flush();	}        if (DEBUG) System.err.println("["+i+"] Sender: Receiving message...");	if (nonblocking) {	  int n = 0;	  while (n < barr2.length) {            if (useselect) {	      while ((read_selitem.revents & Selectable.READ_READY) == 0) {                read_selset.select(SELECT_TIMEOUT);              }	      read_selitem.revents = 0;            }	    n += nbis.read(barr2, n, (barr2.length - n));	  }	} else {	  /* Blocking */          int n = 0;	  while (n < barr2.length) {	    n += is.read(barr2, n, (barr2.length - n)); 	  }        }      }      t2 = System.currentTimeMillis();      printResults("Pingpong test", NUM_MESSAGES, MESSAGE_SIZE, t1, t2);    } else {      /* Receiving */      t1 = System.currentTimeMillis();      for (i = 0; i < NUM_MESSAGES; i++) {        if (DEBUG) System.err.println("["+i+"] Receiver: Receiving message...");	if (nonblocking) {	  int n = 0;	  while (n < barr2.length) {            if (useselect) {	      while ((read_selitem.revents & Selectable.READ_READY) == 0) {                read_selset.select(SELECT_TIMEOUT);              }              if (DEBUG) System.err.println("["+i+"] Receiver: Select says read ready");	      read_selitem.revents = 0;            }	    n += nbis.read(barr2, n, (barr2.length - n));  	  }	} else {	  /* Blocking */          int n = 0;	  while (n < barr2.length) {	    n += is.read(barr2, n, (barr2.length - n)); 	  }        }        if (DEBUG) System.err.println("["+i+"] Receiver: Sending message...");	if (nonblocking) {  	  int n = 0;	  while (n < barr.length) {            if (useselect) {	      while ((write_selitem.revents & Selectable.WRITE_READY) == 0) {  	        write_selset.select(SELECT_TIMEOUT);              }	      write_selitem.revents = 0;	    }	    n += nbos.nbWrite(barr, n, barr.length - n);	  }        } else {	  /* Blocking */	  os.write(barr);	  os.flush();	}      }      t2 = System.currentTimeMillis();      printResults("Pingpong test", NUM_MESSAGES, MESSAGE_SIZE, t1, t2);    }  }  private static void doBandwidth() throws IOException {    int ACK_SIZE = 4;    OutputStream os = sock.getOutputStream();    InputStream is = sock.getInputStream();    NonblockingOutputStream nbos = null;    NonblockingInputStream nbis = null;    if (nonblocking) {      nbos = (NonblockingOutputStream)os;      nbis = (NonblockingInputStream)is;    }    byte barr[] = new byte[MESSAGE_SIZE];    byte barr2[] = new byte[ACK_SIZE];    int i;    long t1, t2;    for (i = 0; i < barr.length; i++) {      barr[i] = (byte)(i & 0xff);    }    System.out.println("Starting bandwidth test: message size "+MESSAGE_SIZE+", num messages "+NUM_MESSAGES);    if (sending) {      t1 = System.currentTimeMillis();      for (i = 0; i < NUM_MESSAGES; i++) {        if (DEBUG2) System.err.println("["+i+"] Sender: Sending message...");	if (nonblocking) {  	  int n = 0;	  while (n < barr.length) {            if (useselect) {	      while ((write_selitem.revents & Selectable.WRITE_READY) == 0) {  	        write_selset.select(SELECT_TIMEOUT);              }	      write_selitem.revents = 0;	    }	    n += nbos.nbWrite(barr, n, barr.length - n);	  }        } else {	  /* Blocking */	  os.write(barr);	  os.flush();	}      }      if (DEBUG) System.err.println("Sender: Receiving ack...");      if (nonblocking) {        int n = 0;        while (n < barr2.length) {          if (useselect) {            while ((read_selitem.revents & Selectable.READ_READY) == 0)  {              read_selset.select(SELECT_TIMEOUT);            }	    read_selitem.revents = 0;          }	  n += nbis.read(barr2, n, (barr2.length - n));  	}      } else {        /* Blocking */        int n = 0;        while (n < barr2.length) {	  n += is.read(barr2, n, (barr2.length - n)); 	}      }      t2 = System.currentTimeMillis();      printResults("Bandwidth test", NUM_MESSAGES, MESSAGE_SIZE, t1, t2);    } else {      /* Receiving */      t1 = System.currentTimeMillis();      for (i = 0; i < NUM_MESSAGES; i++) {        if (DEBUG2) System.err.println("["+i+"] Receiver: Receiving message...");        if (nonblocking) {          int n = 0;          while (n < barr.length) {            if (useselect) {              while ((read_selitem.revents & Selectable.READ_READY) == 0) {                read_selset.select(SELECT_TIMEOUT);              }	      read_selitem.revents = 0;            }	    n += nbis.read(barr, n, (barr.length - n));    	  }        } else {          /* Blocking */          int n = 0;          while (n < barr.length) {	    n += is.read(barr, n, (barr.length - n));   	  }        }      }      if (DEBUG) System.err.println("Receiver: Sending ack...");      if (nonblocking) {  	int n = 0;	while (n < barr2.length) {          if (useselect) {	    while ((write_selitem.revents & Selectable.WRITE_READY) == 0) {  	      write_selset.select(SELECT_TIMEOUT);            }	    write_selitem.revents = 0;	  }	  n += nbos.nbWrite(barr2, n, barr2.length - n);        }      } else {        /* Blocking */	os.write(barr2);	os.flush();      }      t2 = System.currentTimeMillis();      printResults("Bandwidth test", NUM_MESSAGES, MESSAGE_SIZE, t1, t2);    }  }  public static void main(String args[]) {    String REMOTE_HOST;    ServerSocket servsock = null;    NonblockingServerSocket nbservsock = null;    try {      if ((args.length < 4) || (args.length > 5)) {	System.err.println("Usage: java TCPBench [-n] [-s] [send | recv] <remote node> <num messages> <message size>");	System.err.println("Options:");	System.err.println("  -n\t\tUse nonblocking sockets");	System.err.println("  -s\t\tUse select/poll interface (implies -n)");	System.exit(-1);      }      sending = false;      nonblocking = false;      useselect = false;      int n;      for (n = 0; n < 2; ) {        if (args[n].equals("-n")) {          nonblocking = true;	  n++;        } else if (args[n].equals("-s")) {	  useselect = true;	  nonblocking = true;	  n++;	} else {	  break;	}      }      if (args[n].equals("send")) sending = true;      REMOTE_HOST = args[n+1];      NUM_MESSAGES = Integer.valueOf(args[n+2]).intValue();      MESSAGE_SIZE = Integer.valueOf(args[n+3]).intValue();            if (sending) {        System.out.println("Connecting to "+REMOTE_HOST+":"+PORTNUM);        boolean connected = false;        while (!connected) {          try {	    if (nonblocking) sock = new NonblockingSocket(REMOTE_HOST,PORTNUM);	    else sock = new Socket(REMOTE_HOST,PORTNUM);	    if (nonblocking && useselect) {	      read_selset = new SelectSet();	      read_selitem = new SelectItem((NonblockingSocket)sock, (short)Selectable.READ_READY);	      read_selset.add(read_selitem);	      write_selset = new SelectSet();	      write_selitem = new SelectItem((NonblockingSocket)sock, (short)Selectable.WRITE_READY);	      write_selset.add(write_selitem);	    }	    connected = true;          } catch (IOException e) {          }	  if (!connected) {	    try {  	      Thread.currentThread().sleep(100);            } catch (InterruptedException e) {	    }	  }        }      } else {        /* Receiving */	if (nonblocking) nbservsock = new NonblockingServerSocket(PORTNUM);	else servsock = new ServerSocket(PORTNUM);	System.out.println("Waiting for connection...");	if (nonblocking) sock = nbservsock.accept();	else sock = servsock.accept();	if (nonblocking && useselect) {	  read_selset = new SelectSet();     	  read_selitem = new SelectItem((NonblockingSocket)sock, (short)Selectable.READ_READY);	  read_selset.add(read_selitem);      	  write_selset = new SelectSet();	  write_selitem = new SelectItem((NonblockingSocket)sock, (short)Selectable.WRITE_READY);	  write_selset.add(write_selitem);	}	System.out.println("Got connection from "+sock.getInetAddress().toString());      }      doPingpong();      doBandwidth();      sock.close();      if (!sending) {        if (nonblocking) nbservsock.close();        else servsock.close();      }    } catch (Exception e) {      System.out.println("TCPBench: Got exception: "+e.getMessage());      e.printStackTrace();    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一主播视频| 99久久久免费精品国产一区二区| 极品美女销魂一区二区三区 | 欧美日韩你懂得| 精品成人一区二区三区四区| 亚洲九九爱视频| 高清shemale亚洲人妖| 91精品国产综合久久久蜜臀粉嫩 | 亚洲观看高清完整版在线观看 | 91精品国产全国免费观看| 中文字幕一区二区5566日韩| 国产九九视频一区二区三区| 777xxx欧美| 国产91精品免费| 日韩三级免费观看| 亚洲1区2区3区4区| 欧美在线观看视频一区二区| 亚洲丝袜精品丝袜在线| www.亚洲激情.com| 国产精品国产三级国产aⅴ原创| 精品在线免费观看| 精品少妇一区二区三区在线播放| 视频一区二区中文字幕| 欧美巨大另类极品videosbest| 亚洲欧洲精品一区二区三区不卡 | 国产日韩欧美在线一区| 极品少妇xxxx精品少妇偷拍| 精品国产麻豆免费人成网站| 日本不卡视频在线| 精品日韩一区二区三区免费视频| 美女视频黄a大片欧美| 日韩欧美国产wwwww| 老司机午夜精品| 日韩欧美国产1| 狠狠狠色丁香婷婷综合久久五月| 2017欧美狠狠色| 国产激情精品久久久第一区二区| 久久久久9999亚洲精品| 风流少妇一区二区| 亚洲日本在线a| 91老司机福利 在线| 亚洲视频 欧洲视频| 欧美伊人精品成人久久综合97| 一区二区三区免费网站| 欧美日韩一区二区在线观看| 亚洲成人第一页| 精品久久久久久亚洲综合网| 国产一区二区福利| 亚洲视频资源在线| 7777精品伊人久久久大香线蕉最新版| 丝袜诱惑亚洲看片| 久久精品水蜜桃av综合天堂| 91在线观看视频| 免费看欧美女人艹b| 国产欧美一二三区| 欧美男人的天堂一二区| 国产一区二区0| 国产在线精品不卡| 中文字幕日本乱码精品影院| 欧美日韩激情在线| 国产精品一区二区果冻传媒| 亚洲码国产岛国毛片在线| 欧美丰满美乳xxx高潮www| 国产精品白丝jk黑袜喷水| 亚洲一级不卡视频| 国产色综合一区| 欧美高清视频不卡网| 国产成a人亚洲精品| 日韩av一二三| 椎名由奈av一区二区三区| 日韩视频在线观看一区二区| 色综合久久久久综合| 美脚の诱脚舐め脚责91| 亚洲天堂av一区| 久久综合色之久久综合| 欧美日韩高清不卡| 91丝袜高跟美女视频| 久久99精品久久久久| 亚洲自拍偷拍网站| 亚洲国产精华液网站w| 日韩视频免费观看高清完整版在线观看| 国产精品亚洲第一区在线暖暖韩国| 亚洲国产视频网站| 成人欧美一区二区三区1314| 久久久亚洲欧洲日产国码αv| 欧美三级电影在线观看| 91亚洲精品一区二区乱码| 久久国产精品露脸对白| 亚洲成人一区在线| 综合欧美一区二区三区| 国产日韩精品一区| 久久综合九色综合97婷婷| 欧美精品久久99| 欧美午夜在线观看| 色狠狠av一区二区三区| 9i在线看片成人免费| 岛国精品在线播放| 丁香激情综合五月| 国产精品自拍在线| 激情av综合网| 激情国产一区二区| 经典三级一区二区| 狠狠色伊人亚洲综合成人| 五月天激情综合| 亚洲大型综合色站| 亚洲一区二区三区视频在线| 亚洲免费av在线| 一区二区三区四区五区视频在线观看| 中文字幕一区二区三区av| 中文字幕中文字幕中文字幕亚洲无线| 久久一日本道色综合| 国产偷国产偷亚洲高清人白洁| 精品国产一区a| 久久九九99视频| 国产区在线观看成人精品| 久久久国产午夜精品| 国产精品午夜免费| 成人免费一区二区三区视频 | 97国产精品videossex| 99久久久国产精品| 99国产精品久久| 一本大道av一区二区在线播放| 91一区一区三区| 在线精品国精品国产尤物884a| 欧美性生交片4| 欧美一区二区三区在| www成人在线观看| 狠狠色丁香久久婷婷综合_中| 日韩中文字幕区一区有砖一区| 五月天一区二区三区| 九色综合狠狠综合久久| 国产精品影视天天线| 不卡一区在线观看| 91精品91久久久中77777| 欧美精品一级二级| 欧美va亚洲va香蕉在线| 欧美激情在线一区二区三区| 18成人在线观看| 日韩精品高清不卡| 国产精品一区2区| 色网综合在线观看| 日韩午夜中文字幕| 国产精品伦理一区二区| 亚洲一区视频在线| 精品一二线国产| 99这里只有精品| 5858s免费视频成人| 国产偷国产偷亚洲高清人白洁| 亚洲品质自拍视频| 久久97超碰国产精品超碰| k8久久久一区二区三区| 欧美在线观看一区二区| 国产午夜精品一区二区三区嫩草| 亚洲欧美日韩系列| 激情综合一区二区三区| 色婷婷av一区二区三区大白胸| 91精品国产91久久综合桃花| 中文字幕不卡的av| 日韩国产欧美视频| 91美女福利视频| 精品国产露脸精彩对白| 亚洲国产一区在线观看| 国产成人在线电影| 6080日韩午夜伦伦午夜伦| 亚洲欧美日韩国产成人精品影院 | 欧美mv日韩mv亚洲| 亚洲日本乱码在线观看| 韩国欧美国产1区| 欧美性大战久久久久久久蜜臀| 国产肉丝袜一区二区| 麻豆成人av在线| 欧美日韩中文国产| 中文字幕一区二区三区四区| 国产一区二区三区在线观看免费| 欧美伦理电影网| 亚洲国产精品一区二区久久恐怖片| 国产jizzjizz一区二区| 欧美电影免费观看高清完整版 | 亚洲精品国产第一综合99久久 | 日本韩国欧美三级| 国产精品麻豆一区二区| 国产原创一区二区| 精品成人免费观看| 秋霞电影网一区二区| 国产精品灌醉下药二区| 激情伊人五月天久久综合| 欧美成人性战久久| 免费在线观看一区| 日韩一区二区三区精品视频| 亚洲成av人片一区二区三区| 欧美在线制服丝袜| 亚洲午夜视频在线观看| 欧洲精品在线观看| 亚洲大片一区二区三区| 欧美午夜精品久久久| 亚洲va韩国va欧美va| 欧美三片在线视频观看| 五月婷婷激情综合| 欧美电影免费观看高清完整版| 免费欧美在线视频|