精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用nio實現Echo服務

開發 后端
今天突然間想用nio實現個Echo服務,程序實現起來實現不算困難,但跑起來后,在Server端的ServerSocket完成accept之后,我的CPU總是跳到100%。嗯,小郁悶,后來,才發現自己在Server端注冊了多余的監聽事件SelectionKey.OP_WRITE,改過來后好多了,希望記住這個教訓。

今天突然間想用nio實現個Echo服務,程序實現起來實現不算困難,但跑起來后,在Server端的ServerSocket完成accept之后,我的CPU總是跳到100%。嗯,小郁悶,后來,才發現自己在Server端注冊了多余的監聽事件SelectionKey.OP_WRITE,改過來后好多了,希望記住這個教訓。

EchoServer.java

  1. package edu.dlut.zxf.nio;  
  2.  
  3. import java.io.IOException;  
  4. import java.net.InetAddress;  
  5. import java.net.InetSocketAddress;  
  6. import java.nio.ByteBuffer;  
  7. import java.nio.channels.SelectionKey;  
  8. import java.nio.channels.Selector;  
  9. import java.nio.channels.ServerSocketChannel;  
  10. import java.nio.channels.SocketChannel;  
  11. import java.util.Set;  
  12.  
  13. /**  
  14.  * Echo服務器  
  15.  * @author finux  
  16.  */ 
  17. public class EchoServer {  
  18.     public final static int BUFFER_SIZE = 1024//默認端口  
  19.     public final static String HOST = "210.30.107.17";  
  20.     public final static int PORT = 8888;  
  21.       
  22.     public static void main(String[] args) {  
  23.         ServerSocketChannel ssc = null;  
  24.         //緩沖區  
  25.         ByteBuffer buffer = ByteBuffer.allocate(BUFFER_SIZE);  
  26.         Selector selector = null;  
  27.         try {  
  28.             selector = Selector.open();  
  29.             ssc = ServerSocketChannel.open();  
  30.             ssc.socket().bind(new InetSocketAddress(InetAddress.getByName(HOST), PORT));  
  31.             ssc.configureBlocking(false);  
  32.             ssc.register(selector, SelectionKey.OP_ACCEPT);       
  33.             print("服務器啟動,準備好連接...");  
  34.             while (selector.select() > 0) {       
  35.                 Set<SelectionKey> selectionKeys = selector.selectedKeys();  
  36.                 for (SelectionKey key: selectionKeys) {  
  37.                     if (key.isAcceptable()) {  
  38.                         SocketChannel sc = ssc.accept();  
  39.                         print("有新的連接!地址:" + sc.socket().getRemoteSocketAddress());  
  40.                         sc.configureBlocking(false);  
  41.                         sc.register(selector, SelectionKey.OP_READ);  
  42.                         // 不要寫成:  
  43.                         // sc.register(selector, SelectionKey.OP_READ | SelectionKey.OP_WRITE);  
  44.                         // 畢竟這樣多注冊的無用的事件SelectionKey.OP_WRTE  
  45.                         // 如果是這樣,在完成accept后,CPU也許會跑到100%  
  46.                           
  47.                     }  
  48.                     //same to if ((ops & SelectionKey.OP_READ) == SelectionKey.OP_READ) {  
  49.                     if (key.isReadable()) {   
  50.                         SocketChannel sc = (SocketChannel)key.channel();  
  51.                         print("有新的讀??!地址:" + sc.socket().getRemoteSocketAddress());                        
  52.                         buffer.clear();                       
  53.                         sc.read(buffer);  
  54.                         buffer.flip();  
  55.                         byte[] b = new byte[buffer.limit()];  
  56.                         buffer.get(b);  
  57.                         String s = new String(b);  
  58.                         if (s.equals("bye")) {  
  59.                             print("斷開連接:" + sc.socket().getRemoteSocketAddress());    
  60.                             //斷開連接后,取消此鍵的通道到其選擇器的注冊  
  61.                             key.cancel();  
  62.                             sc.close();  
  63.                             continue;  
  64.                         }  
  65.                         print("讀取的內容為:" + s);     
  66.                         buffer.clear();  
  67.                         s = "echo: " + s;  
  68.                         buffer.put(s.getBytes());  
  69.                         buffer.flip();  
  70.                         sc.write(buffer);  
  71.                     }   
  72.                 }  
  73.                 selectionKeys.clear();  
  74.             }  
  75.         } catch(IOException e) {  
  76.             e.printStackTrace();  
  77.         }   
  78.     }  
  79.       
  80.     private static void print(String s) {  
  81.         System.out.println(s);  
  82.     }  

EchoClient.java

  1. package edu.dlut.zxf.nio;  
  2.  
  3. import java.util.Set;  
  4. import java.io.BufferedReader;  
  5. import java.io.IOException;  
  6. import java.io.InputStreamReader;  
  7. import java.net.InetSocketAddress;  
  8. import java.net.InetAddress;  
  9. import java.nio.ByteBuffer;  
  10. import java.nio.channels.SelectionKey;  
  11. import java.nio.channels.Selector;  
  12. import java.nio.channels.SocketChannel;  
  13.  
  14. /**  
  15.  * Echo客戶端  
  16.  * @author finux  
  17.  */ 
  18. public class EchoClient {  
  19.     public static void main(String[] args) {  
  20.         ByteBuffer buffer = ByteBuffer.allocate(EchoServer.BUFFER_SIZE);  
  21.         Selector selector = null;  
  22.         SocketChannel sc = null;  
  23.         try {  
  24.             selector = Selector.open();  
  25.             sc = SocketChannel.open();  
  26.             sc.configureBlocking(false);  
  27.             sc.connect(new InetSocketAddress(InetAddress.getByName(EchoServer.HOST), EchoServer.PORT));  
  28.             print("客戶端啟動,準備連接...");  
  29.             if (sc.isConnectionPending()) {  
  30.                 sc.finishConnect();  
  31.             }  
  32.             print("完成連接");  
  33.             sc.register(selector, SelectionKey.OP_READ | SelectionKey.OP_WRITE);  
  34.               
  35.             boolean writed = false;  
  36.             boolean down = false;  
  37.             while (!down && selector.select() > 0) {                  
  38.                 Set<SelectionKey> selectionKeys = selector.selectedKeys();  
  39.                 for (SelectionKey key: selectionKeys) {                   
  40.                     //int ops = key.readyOps();  
  41.                     //if ((ops & SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE && !writed) {  
  42.                     if (key.isWritable() && !writed) {  
  43.                         System.out.print("Input(bye to end): ");  
  44.                         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   
  45.                         String s = br.readLine();  
  46.                         if (s != null && !s.trim().equals("")) {  
  47.                             buffer.clear();  
  48.                             buffer.put(s.getBytes());  
  49.                             buffer.flip();  
  50.                             sc.write(buffer);  
  51.                             writed = true;  
  52.                             if (s.equals("bye")) {  
  53.                                 down = true;  
  54.                                 break;  
  55.                             }  
  56.                         }  
  57.                     }  
  58.                     //if ((ops & SelectionKey.OP_READ) == SelectionKey.OP_READ && writed) {  
  59.                     if (key.isReadable() && writed) {  
  60.                         buffer.clear();  
  61.                         sc.read(buffer);  
  62.                         buffer.flip();  
  63.                         byte[] b = new byte[buffer.limit()];  
  64.                         buffer.get(b);  
  65.                         print(new String(b));  
  66.                         writed = false;  
  67.                     }  
  68.                 }  
  69.                 selectionKeys.clear();  
  70.             }  
  71.         } catch(IOException e) {  
  72.             e.printStackTrace();  
  73.         }  
  74.     }  
  75.       
  76.     private static void print(String s) {  
  77.         System.out.println(s);  
  78.     }  

當然EchoClient也可以像下面這樣來實現:

EchoClient2.java

  1. package edu.dlut.zxf.nio;  
  2.  
  3. import java.util.Set;  
  4. import java.io.BufferedReader;  
  5. import java.io.IOException;  
  6. import java.io.InputStreamReader;  
  7. import java.net.InetSocketAddress;  
  8. import java.net.InetAddress;  
  9. import java.nio.ByteBuffer;  
  10. import java.nio.channels.SelectionKey;  
  11. import java.nio.channels.Selector;  
  12. import java.nio.channels.SocketChannel;  
  13.  
  14. /**  
  15.  * Echo客戶端2  
  16.  * @author finux  
  17.  */ 
  18. public class EchoClient2 {  
  19.     public static void main(String[] args) {  
  20.         ByteBuffer buffer = ByteBuffer.allocate(EchoServer.BUFFER_SIZE);  
  21.         Selector selector = null;  
  22.         SocketChannel sc = null;  
  23.         try {  
  24.             selector = Selector.open();  
  25.             sc = SocketChannel.open();  
  26.             sc.configureBlocking(false);  
  27.             sc.register(selector, SelectionKey.OP_CONNECT);  
  28.             sc.connect(new InetSocketAddress(InetAddress.getByName(EchoServer.HOST), EchoServer.PORT));  
  29.             print("客戶端啟動,準備連接...");  
  30.               
  31.             boolean writed = false;  
  32.             boolean down = false;  
  33.             while (!down && selector.select() > 0) {                  
  34.                 Set<SelectionKey> selectionKeys = selector.selectedKeys();  
  35.                 for (SelectionKey key: selectionKeys) {                   
  36.                     //int ops = key.readyOps();  
  37.                     //if ((ops & SelectionKey.OP_CONNECT) == SelectionKey.OP_CONNECT) {  
  38.                     if (key.isConnectable()) {  
  39.                         print("完成連接!");  
  40.                         if (sc.isConnectionPending()) {  
  41.                             sc.finishConnect();  
  42.                         }  
  43.                         sc.register(selector, SelectionKey.OP_READ | SelectionKey.OP_WRITE);                  
  44.                     }  
  45.                     //if ((ops & SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE && !writed) {  
  46.                     if (key.isWritable() && !writed) {  
  47.                         //從準備IO中讀取內容  
  48.                         System.out.print("Input(bye to end): ");  
  49.                         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   
  50.                         String s = br.readLine();  
  51.                         if (s != null && !s.trim().equals("")) {  
  52.                             buffer.clear();  
  53.                             buffer.put(s.getBytes());  
  54.                             buffer.flip();  
  55.                             sc.write(buffer);  
  56.                             writed = true;  
  57.                             if (s.equals("bye")) {  
  58.                                 down = true;  
  59.                                 break;  
  60.                             }  
  61.                         }  
  62.                     }  
  63.                     //if ((ops & SelectionKey.OP_READ) == SelectionKey.OP_READ && writed) {  
  64.                     if (key.isReadable() && writed) {  
  65.                         buffer.clear();  
  66.                         sc.read(buffer);  
  67.                         buffer.flip();  
  68.                         byte[] b = new byte[buffer.limit()];  
  69.                         buffer.get(b);  
  70.                         print(new String(b));  
  71.                         writed = false;  
  72.                     }  
  73.                 }  
  74.                 selectionKeys.clear();  
  75.             }  
  76.         } catch(IOException e) {  
  77.             e.printStackTrace();  
  78.         }  
  79.     }  
  80.       
  81.     private static void print(String s) {  
  82.         System.out.println(s);  
  83.     }  

但是這樣的話,顯然EchoClient2中的while循環中的for循環(若有n次),在每次循環中都會多出n-1次if判斷,就是下面這個:

  1. if (key.isConnectable()) { 

所以,我個人更喜歡***個EchoClient,呵呵,不用注冊SelectionKey.OP_CONNECT監聽事件。呵呵...

原文鏈接:http://finux.iteye.com/blog/368955

【編輯推薦】

  1. Java NIO 深入研究
  2. Java NIO聊天窗口實例
  3. Java NIO 經典實例代碼
  4. Java NIO性能測試
  5. Java NIO TCP編程
責任編輯:林師授 來源: finux的博客
相關推薦

2023-03-31 07:49:51

syscall庫Echo Serve

2011-12-07 16:50:29

JavaNIO

2020-04-16 15:20:43

PHP前端BIO

2011-12-07 17:05:45

JavaNIO

2011-12-08 10:12:34

JavaNIO

2011-12-08 13:04:06

JavaNIO

2012-04-11 15:41:48

JavaNIO

2022-11-04 08:29:12

NodejsHttp 服務

2023-08-22 11:00:16

云計算容器微服務

2011-09-30 13:04:17

51CTO博客一周熱門監控網絡

2011-03-11 09:51:47

Java NIO

2011-12-08 09:37:36

JavaNIO

2022-08-11 08:03:43

隊列

2010-09-10 14:03:47

echo協議

2018-06-15 10:25:43

Python HTTPFTP服務器

2018-12-06 09:23:33

2024-11-29 10:23:35

2014-01-02 15:16:42

PythonLinux服務器服務器監控

2011-12-07 15:21:50

JavaNIO

2011-12-15 09:40:06

Javanio
點贊
收藏

51CTO技術棧公眾號

久久精品免费一区二区| 国产精品极品美女在线观看免费| 中文字幕乱码在线人视频| 91在线中文| 97精品久久久午夜一区二区三区| 奇门遁甲1982国语版免费观看高清| 蜜桃无码一区二区三区| 宅男噜噜噜66国产精品免费| 亚洲国产精品麻豆| 色一情一乱一伦一区二区三欧美| 国产精品美女一区| 亚洲色诱最新| xxx欧美精品| 97香蕉碰碰人妻国产欧美| 日韩第二十一页| 精品女同一区二区三区在线播放| 中文字幕一区二区三区有限公司| 青青在线视频观看| 国产aⅴ激情无码久久久无码| 日韩和的一区二在线| 亚洲黄网站在线观看| 欧美日韩电影一区二区| 国产成人精品av在线观| 久久精品91| 久久久久一本一区二区青青蜜月| 日本免费www| 日韩av三区| 日韩视频123| 亚洲精品手机在线观看| 亚洲国产福利| 亚洲国产乱码最新视频 | 国产午夜精品福利| 国产午夜精品在线| 精品国产伦一区二区三区| 日韩在线一区二区三区| 2021国产精品视频| 美女毛片在线观看| 国产高清一区二区| 一本大道久久加勒比香蕉| 2一3sex性hd| 日韩欧美中文在线观看| 欧美日韩高清一区二区三区| 乱子伦视频在线看| 成人bbav| 午夜激情一区二区三区| 日本国产中文字幕| 深夜国产在线播放| 日韩美女精品在线| 亚洲欧美电影在线观看| 国产一区电影| 欧美国产日韩精品免费观看| 欧美日韩精品免费观看 | 一区二区欧美日韩视频| 日韩中文字幕电影| 国产成人精品免费视| 亚洲美女福利视频网站| 日韩精品最新网址| 免费无码国产v片在线观看| 一本久久a久久精品vr综合 | 自拍视频在线免费观看| 欧美高清在线精品一区| 欧美日韩精品一区| 国产在线你懂得| 欧美国产成人精品| 亚洲一区二区三区色| 日本高清视频在线观看| 中文字幕一区二区三区色视频| 亚洲高清视频一区| 欧美激情午夜| 亚洲精品第1页| 国产女主播自拍| 日本不卡1234视频| 91成人免费在线| 污污的网站18| а天堂中文最新一区二区三区| 欧美日韩大陆一区二区| 欧美激情第四页| 成人偷拍自拍| 亚洲激情在线视频| 久操视频免费看| 久久久精品成人| 超碰在线一区| 亚洲人高潮女人毛茸茸| 中文国语毛片高清视频| 欧美精品不卡| 欧美一级视频在线观看| 久久这里只有精品9| 精品一区二区三区久久久| 51午夜精品| 色鬼7777久久| 国产精品久久精品日日| 欧美大黑帍在线播放| 一区二区三区电影大全| 欧美日韩久久久一区| 亚洲成人激情小说| 色婷婷久久久| www.欧美三级电影.com| 精品无码m3u8在线观看| 日精品一区二区| 亚洲专区中文字幕| 天堂成人在线| 国产精品麻豆网站| 欧美黑人经典片免费观看| 日日av拍夜夜添久久免费| 欧美丰满少妇xxxxx高潮对白| 中国一级特黄录像播放| 日韩成人精品一区| 久久久久国产一区二区三区| 中文字幕一区二区人妻视频| 国产精品一区二区在线观看网站| 翡翠波斯猫1977年美国| 77导航福利在线| 亚洲第一福利视频在线| 可以看污的网站| 一道本一区二区三区| 欧美美女18p| 99re国产在线| 99久久99久久精品国产片果冻| av电影一区二区三区| 毛片无码国产| 亚洲第一网站男人都懂| 日本在线一级片| 久色成人在线| 久草热久草热线频97精品| av理论在线观看| 91国产福利在线| 精品国产人妻一区二区三区| 欧美黄色aaaa| 国产精品一区电影| 日本不卡视频一区二区| 亚洲一区二区三区激情| 热久久久久久久久| 不卡在线一区| 青草成人免费视频| 日本人妻丰满熟妇久久久久久| 亚洲特黄一级片| 久久综合伊人77777麻豆最新章节| 欧美成人基地| 国内免费精品永久在线视频| av网站在线观看免费| 国产精品电影院| 97公开免费视频| 天天做夜夜做人人爱精品| 久久久久在线观看| 日本人妻熟妇久久久久久 | 国产精品九九九九九九| 美国一区二区三区在线播放 | 一区二区三区在线影院| 中文字幕亚洲欧洲| 久久一区二区三区喷水| 国产精品成人久久久久| 国产青青草在线| 日本乱码高清不卡字幕| 国产激情在线免费观看| 一区二区三区国产在线| 九九99玖玖| 日本不卡网站| 精品亚洲aⅴ在线观看| 黄色在线观看国产| 91麻豆123| av免费中文字幕| 国产精品中文字幕亚洲欧美| 国产精品999999| 国产福利在线看| 在线电影国产精品| 国产乱国产乱老熟300| 懂色av一区二区夜夜嗨| 日韩人妻无码精品久久久不卡| 成人爽a毛片免费啪啪红桃视频| 高清视频欧美一级| 瑟瑟在线观看| 欧美日韩国产一区| 91久久国产综合| 懂色av一区二区三区免费观看 | 性生交大片免费全黄| 精品一区二区三区不卡| 蜜臀在线免费观看| 国产+成+人+亚洲欧洲在线| 性欧美长视频免费观看不卡| 偷拍25位美女撒尿视频在线观看| 色中色一区二区| 欧美88888| 成人网在线免费视频| 国产91在线视频观看| av一区二区在线播放| 91久久久久久久久久| 欧美videosex性极品hd| 日韩第一页在线| 中文字幕乱码人妻二区三区| 一区二区在线免费| 成人影视免费观看| 精一区二区三区| 黄色免费福利视频| 色小子综合网| 国产精品伊人日日| av成人在线看| 欧美激情亚洲综合一区| 国产三区四区在线观看| 欧美一区二区三区播放老司机| 日韩精品乱码久久久久久| 亚洲国产高清在线| 成年人小视频在线观看| 蜜桃视频一区二区三区| 老太脱裤子让老头玩xxxxx| 欧美国产一级| 欧美精品久久| 91精品尤物| 国产成人久久久| 蜜臀av在线| 日韩专区中文字幕| 五月婷婷在线观看视频| 制服.丝袜.亚洲.另类.中文| 黄色在线免费观看| 亚洲一区二区三区视频在线| 91禁男男在线观看| 久久午夜羞羞影院免费观看| 色婷婷一区二区三区在线观看| 亚洲伊人观看| 国产情侣第一页| 91综合久久一区二区| 另类视频在线观看+1080p| 国产美女视频一区二区| 国产精品高潮视频| 亚洲美女久久精品| 久久久久亚洲精品| 成年人网站在线| 在线视频欧美性高潮| 日本在线视频1区| 欧美成人精品福利| 97视频免费在线| 欧美日韩国产综合久久| av首页在线观看| 欧美视频免费在线| 日韩美女黄色片| 亚洲一区二区精品3399| 日韩激情小视频| 中文字幕+乱码+中文字幕一区| 一级片手机在线观看| 91啪亚洲精品| 51调教丨国产调教视频| 99在线精品观看| 污污污www精品国产网站| 风间由美性色一区二区三区| 亚洲丝袜在线观看| 国产精品资源在线看| 亚洲成人手机在线观看| 国产在线观看一区二区| 亚洲无在线观看| 精品一区二区三区在线观看国产| 黄大色黄女片18第一次| 免费在线看一区| 老司机久久精品| 久久草av在线| 婷婷激情5月天| 国产精品538一区二区在线| 亚洲一级片免费观看| 国产精品一级在线| 久久久久亚洲AV成人网人人小说| 国产69精品久久99不卡| 97精品人妻一区二区三区蜜桃| av午夜一区麻豆| 欧美 变态 另类 人妖| 97se亚洲国产综合在线| 久久精品成人av| 国产欧美日韩激情| 亚洲少妇xxx| 亚洲女子a中天字幕| 国产香蕉在线视频| 黑人巨大精品欧美一区二区三区| 国产99免费视频| 欧美精品久久99久久在免费线 | 国产精品theporn动漫| 午夜精品久久久久久久| 无码免费一区二区三区| 在线不卡欧美精品一区二区三区| 精品女同一区二区三区| 亚洲国产成人av在线| 裸体xxxx视频在线| www.精品av.com| 丁香花高清在线观看完整版| 欧美在线视频一区| 欧美三级电影网址| 国产精品亚洲综合| 欧美日韩性在线观看| 黄色一级片av| 香蕉视频成人在线观看| 欧美日韩一区二区三区69堂| 国产91精品一区二区| 最近中文字幕在线mv视频在线| 国产精品久久久久久久久久久免费看| www色aa色aawww| 精品成人av一区| 国产一区二区三区视频免费观看| 日韩精品一区二区三区swag| 四虎影视在线观看2413| 波霸ol色综合久久| 久草免费在线视频| 成人免费淫片aa视频免费| 国产精品jk白丝蜜臀av小说| 日韩欧美亚洲日产国产| 激情久久中文字幕| 亚洲欧美国产中文| 99久久精品免费| 内射一区二区三区| 日韩欧美精品免费在线| 精品免费久久久| 在线国产精品视频| 91av久久| 2014亚洲精品| 99久久99久久精品国产片果冰| 黄页免费在线观看视频| 国产在线精品一区二区三区不卡 | 精品黑人一区二区三区在线观看| 亚洲色图在线观看| 超级碰碰不卡在线视频| 成人免费福利在线| 精品国产乱码久久久久久1区2匹| 欧日韩免费视频| 国内精品久久久久影院薰衣草| 免费观看av网站| 亚洲不卡在线观看| 国产片在线播放| 俺去了亚洲欧美日韩| 向日葵视频成人app网址| 国产一区二区精品免费| 欧美精品入口| 中文字幕精品一区二区三区在线| 久久久久国产精品麻豆| 国产午夜久久久| 日韩三级视频在线观看| 91网页在线观看| 国产精品av在线| 亚洲精品亚洲人成在线观看| 分分操这里只有精品| 国v精品久久久网| 久久久久久久久毛片| 欧美一级二级三级乱码| 动漫一区在线| 成人午夜一级二级三级| 欧美第十八页| 在线观看免费不卡av| 国产精品美女久久久久久久网站| 看黄色一级大片| 国产亚洲精品成人av久久ww| 欧美理论影院| 青青草原亚洲| 日韩激情一区二区| 欧美三级视频网站| 欧美怡红院视频| 97视频精彩视频在线观看| 国产精品旅馆在线| 欧美freesextv| 91福利免费观看| 亚洲精品乱码久久久久久| aaa国产视频| 久久久久久久影院| 精品国产午夜肉伦伦影院| 日本福利视频在线| 91麻豆免费视频| 国产美女www| 成人444kkkk在线观看| 久久免费福利| 国产日韩欧美精品在线观看| 91香蕉国产在线观看软件| 日韩一级在线视频| 中文字幕日韩欧美在线| 亚洲免费看片| 青青草国产免费| 久久久久久久综合色一本| 在线观看免费高清视频| 欧美成人剧情片在线观看| 国产精品成人自拍| 欧美一级片中文字幕| 欧美国产国产综合| 99久久久国产精品无码网爆| 久久久久免费视频| 亚洲美女久久| 中文字幕线观看| 亚洲高清视频在线| 国产青青草在线| 91传媒在线免费观看| 国产亚洲在线观看| 影音先锋男人看片资源| 欧美一区二区三区电影| 亚洲妇女成熟| 伊人久久青草| 成人短视频下载| 无码人妻丰满熟妇精品区| 久久国产精品免费视频| 欧美久久精品| 日韩av一卡二卡三卡| 欧美日韩国产丝袜美女| 麻豆网站在线| 久久国产精品一区二区三区四区| 毛片一区二区三区| 国产一级二级三级| 中文字幕9999| 精品国产乱子伦一区二区| 欧美激情第3页| 欧美香蕉大胸在线视频观看|