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

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

?? echoserver.java

?? 孫衛琴《Java網絡編程精解》源代碼
?? JAVA
字號:
package thread2;
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
import java.nio.charset.*;
import java.net.*;
import java.util.*;

public class EchoServer{
  private Selector selector = null;
  private ServerSocketChannel serverSocketChannel = null;
  private int port = 8000;
  private Charset charset=Charset.forName("GBK");

  public EchoServer()throws IOException{
    selector = Selector.open();
    serverSocketChannel= ServerSocketChannel.open();
    serverSocketChannel.socket().setReuseAddress(true);
    serverSocketChannel.socket().bind(new InetSocketAddress(port));
    System.out.println("服務器啟動");
  }

  public void accept(){
      for(;;){
        try{
            SocketChannel socketChannel = serverSocketChannel.accept();
            System.out.println("接收到客戶連接,來自:" +
                               socketChannel.socket().getInetAddress() +
                               ":" + socketChannel.socket().getPort());
            socketChannel.configureBlocking(false);

            ByteBuffer buffer = ByteBuffer.allocate(1024);
            synchronized(gate){
                selector.wakeup();
                socketChannel.register(selector,
                                       SelectionKey.OP_READ |
                                       SelectionKey.OP_WRITE, buffer);
            }
        }catch(IOException e){e.printStackTrace();}
      }
  }
  private Object gate=new Object();
  public void service() throws IOException{
    for(;;){
      synchronized(gate){}
      int n = selector.select();

      if(n==0)continue;
      Set readyKeys = selector.selectedKeys();
      Iterator it = readyKeys.iterator();
      while (it.hasNext()){
        SelectionKey key=null;
        try{
            key = (SelectionKey) it.next();
            it.remove();
            if (key.isReadable()) {
                receive(key);
            }
            if (key.isWritable()) {
                send(key);
            }
        }catch(IOException e){
           e.printStackTrace();
           try{
               if(key!=null){
                   key.cancel();
                   key.channel().close();
               }
           }catch(Exception ex){e.printStackTrace();}
        }
      }//#while
    }//#while
  }

  public void send(SelectionKey key)throws IOException{
    ByteBuffer buffer=(ByteBuffer)key.attachment();
    SocketChannel socketChannel=(SocketChannel)key.channel();
    buffer.flip();  //把極限設為位置
    String data=decode(buffer);
    if(data.indexOf("\n")==-1)return;
    String outputData=data.substring(0,data.indexOf("\n")+1);
    System.out.print(outputData);
    ByteBuffer outputBuffer=encode("echo:"+outputData);
    while(outputBuffer.hasRemaining())
      socketChannel.write(outputBuffer);

    ByteBuffer temp=encode(outputData);
    buffer.position(temp.limit());
    buffer.compact();

    if(outputData.equals("bye\r\n")){
      key.cancel();
      socketChannel.close();
      System.out.println("關閉與客戶的連接");
    }
  }

  public void receive(SelectionKey key)throws IOException{
    ByteBuffer buffer=(ByteBuffer)key.attachment();

    SocketChannel socketChannel=(SocketChannel)key.channel();
    ByteBuffer readBuff= ByteBuffer.allocate(32);
    socketChannel.read(readBuff);
    readBuff.flip();

    buffer.limit(buffer.capacity());
    buffer.put(readBuff);
  }

  public String decode(ByteBuffer buffer){  //解碼
    CharBuffer charBuffer= charset.decode(buffer);
    return charBuffer.toString();
  }
  public ByteBuffer encode(String str){  //編碼
    return charset.encode(str);
  }

  public static void main(String args[])throws Exception{
    final EchoServer server = new EchoServer();
    Thread accept=new Thread(){
        public void run(){
            server.accept();
        }
    };
    accept.start();
    server.service();
  }
}





/****************************************************
 * 作者:孫衛琴                                     *
 * 來源:<<Java網絡編程精解>>                       *
 * 技術支持網址:www.javathinker.org                *
 ***************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲av在线| 成人av电影在线观看| 亚洲欧洲日韩综合一区二区| 日韩视频一区二区在线观看| 99视频在线观看一区三区| 一区二区三区在线影院| 亚洲国产精品99久久久久久久久| 欧美区一区二区三区| 在线免费观看日韩欧美| 国产xxx精品视频大全| 自拍偷拍国产精品| 欧美成人国产一区二区| 欧美精选午夜久久久乱码6080| 91精品午夜视频| 欧美日韩不卡一区二区| 欧美日韩成人综合在线一区二区| 日韩精品午夜视频| 久久久久9999亚洲精品| 久久色视频免费观看| 久久尤物电影视频在线观看| 精品福利在线导航| 久久久亚洲午夜电影| 日本一区二区高清| 亚洲精品成人在线| 99久久国产综合精品色伊| 国产在线不卡视频| 99久久国产综合精品麻豆| 亚洲欧美另类在线| 欧美日韩中文精品| 久久99久久精品欧美| 欧美精品一区二| 99久久久国产精品免费蜜臀| 有码一区二区三区| 91精品蜜臀在线一区尤物| 久久精品久久综合| 中国av一区二区三区| 成人自拍视频在线| 夜夜爽夜夜爽精品视频| 91精品国产品国语在线不卡| 久久成人久久爱| 欧美激情综合网| 一本大道久久a久久综合| 天天综合天天做天天综合| 精品入口麻豆88视频| av不卡在线播放| 日韩精品欧美成人高清一区二区| 26uuu亚洲综合色| 色婷婷av久久久久久久| 青娱乐精品视频| 亚洲精选在线视频| 国产欧美一区二区精品婷婷| av中文字幕不卡| 久久精品国产一区二区三| 国产精品久久综合| 久久精品人人做人人爽97| 欧美在线一二三| 国产精品一区二区三区网站| 一区二区三区四区国产精品| 欧美成人在线直播| 欧美亚洲国产bt| 国产精品影视在线观看| 亚洲一区欧美一区| 久久久精品欧美丰满| 欧美日韩精品欧美日韩精品一| 久久爱www久久做| 亚洲无线码一区二区三区| 国产欧美精品一区二区色综合朱莉| 欧美日韩一区二区三区高清 | 日韩成人午夜精品| 国产精品理伦片| 日韩欧美在线网站| 欧美体内she精视频| 成人av先锋影音| 国产一区二区三区久久久| 丝袜亚洲另类欧美综合| 亚洲摸摸操操av| 国产区在线观看成人精品 | 99re热这里只有精品视频| 麻豆视频观看网址久久| 亚洲成人激情综合网| 亚洲日本成人在线观看| 中文字幕免费一区| 久久午夜色播影院免费高清| 91精品国产福利| 在线看国产一区| 91丨porny丨最新| 成人av综合一区| 国产成人精品1024| 激情六月婷婷久久| 久久国产三级精品| 夜夜揉揉日日人人青青一国产精品| 国产精品黄色在线观看| 久久免费电影网| 2014亚洲片线观看视频免费| 日韩视频免费观看高清完整版在线观看| 欧美综合在线视频| 欧美性xxxxxx少妇| 在线观看日韩av先锋影音电影院| www.性欧美| av成人动漫在线观看| 国产真实精品久久二三区| 欧美bbbbb| 奇米色一区二区| 午夜成人免费视频| 日韩中文字幕一区二区三区| 日韩精品国产精品| 精品无人码麻豆乱码1区2区| 精品一区二区三区在线观看| 国内外成人在线| 国产老女人精品毛片久久| 国产成人精品免费一区二区| 成人h动漫精品一区二区| 99热国产精品| 欧美伊人久久久久久午夜久久久久| 色一区在线观看| 欧美日韩午夜精品| 欧美一区二区三区日韩| 精品国产在天天线2019| 宅男在线国产精品| 日韩一级完整毛片| 精品免费国产二区三区| 国产色爱av资源综合区| 亚洲精品你懂的| 人妖欧美一区二区| 国产在线精品一区二区夜色| 东方欧美亚洲色图在线| 91久久精品一区二区三| 日韩一区二区视频| 国产片一区二区| 亚洲国产视频直播| 久久精品国产99久久6| 不卡一卡二卡三乱码免费网站| 一本在线高清不卡dvd| 欧美日韩三级在线| 久久精品视频在线看| 一区二区三区电影在线播| 日韩中文字幕亚洲一区二区va在线| 日韩二区三区四区| 国产大陆精品国产| 91免费视频观看| 日韩欧美综合在线| 日韩理论片在线| 国产精品成人一区二区艾草 | 亚洲国产高清在线观看视频| 一区二区三区中文字幕| 国产原创一区二区| 一本大道久久a久久综合| 欧美在线视频不卡| 欧美在线色视频| 国产精品丝袜91| 日本欧美肥老太交大片| 欧美图区在线视频| 久久精品人人做人人综合| 亚洲一区电影777| 成人福利在线看| 91精品国产91久久久久久一区二区| 精品电影一区二区三区| 亚洲第一搞黄网站| 97久久精品人人做人人爽| 精品国产123| 日韩av一区二区三区四区| 91在线视频观看| 中文字幕免费观看一区| 青青草原综合久久大伊人精品| 色综合久久中文综合久久牛| 久久综合色8888| 蜜桃免费网站一区二区三区| 国产一区二区三区免费播放| 国产99一区视频免费| 欧美日本乱大交xxxxx| 中文字幕乱码亚洲精品一区 | 91看片淫黄大片一级在线观看| 欧美日韩国产精品自在自线| 国产精品毛片久久久久久久| 国模冰冰炮一区二区| 日韩欧美综合一区| 丝袜美腿高跟呻吟高潮一区| 日本久久一区二区三区| 中文字幕电影一区| 99re热这里只有精品免费视频 | 在线观看一区日韩| ●精品国产综合乱码久久久久 | 欧美亚洲动漫精品| 亚洲bt欧美bt精品777| 在线日韩国产精品| 亚洲精品高清在线观看| a4yy欧美一区二区三区| 中文av一区特黄| 成人综合在线观看| 国产精品久久久久久久久快鸭| 国产一区久久久| 国产亚洲精品aa| 国产精品一级二级三级| 久久综合久久综合久久| 国产另类ts人妖一区二区| 久久久久国色av免费看影院| 国产盗摄精品一区二区三区在线| 亚洲人精品午夜| 在线亚洲高清视频| 香蕉影视欧美成人|