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

Apache MINA實戰(zhàn)之對象傳輸

開發(fā) 后端
利用Apache MINA來傳遞對象,這對了MINA來說非常容易,并且這也是Java網(wǎng)絡編程中很常用的應用。其實對于MINA傳遞對象來說,如果看過前一篇文章的話,只要在其中做少許改動就可以實現(xiàn)對象傳遞,但這里考慮到例子的完整性,還是給出了全部代碼示例。

利用Apache MINA來傳遞對象,這對了MINA來說非常容易,并且這也是Java網(wǎng)絡編程中很常用的應用。其實對于MINA傳遞對象來說,如果看過前一篇文章的話,只要在其中做少許改動就可以實現(xiàn)對象傳遞,但這里考慮到例子的完整性,還是給出了全部代碼示例。

首先看兩個用來傳遞的Java對象MyRequestObject和MyResponseObject,很簡單只是實現(xiàn)了Serializable接口罷了。

  1. package com.google.code.garbagecan.minastudy.sample3;  
  2.  
  3. import java.io.Serializable;  
  4.  
  5. public class MyRequestObject implements Serializable {  
  6.  
  7.     private static final long serialVersionUID = 1L;  
  8.  
  9.     private String name;  
  10.       
  11.     private String value;  
  12.  
  13.     public MyRequestObject(String name, String value) {  
  14.         this.name = name;  
  15.         this.value = value;  
  16.     }  
  17.       
  18.     public String getName() {  
  19.         return name;  
  20.     }  
  21.  
  22.     public void setName(String name) {  
  23.         this.name = name;  
  24.     }  
  25.  
  26.     public String getValue() {  
  27.         return value;  
  28.     }  
  29.  
  30.     public void setValue(String value) {  
  31.         this.value = value;  
  32.     }  
  33.       
  34.     @Override 
  35.     public String toString() {  
  36.         StringBuffer sb = new StringBuffer();  
  37.         sb.append("Request [name: " + name  + ", value: " + value + "]");  
  38.         return sb.toString();  
  39.     }  
  40. }  
  41.  
  42. package com.google.code.garbagecan.minastudy.sample3;  
  43.  
  44. import java.io.Serializable;  
  45.  
  46. public class MyResponseObject implements Serializable {  
  47.  
  48.     private static final long serialVersionUID = 1L;  
  49.  
  50.     private String name;  
  51.       
  52.     private String value;  
  53.  
  54.     public MyResponseObject(String name, String value) {  
  55.         this.name = name;  
  56.         this.value = value;  
  57.     }  
  58.       
  59.     public String getName() {  
  60.         return name;  
  61.     }  
  62.  
  63.     public void setName(String name) {  
  64.         this.name = name;  
  65.     }  
  66.  
  67.     public String getValue() {  
  68.         return value;  
  69.     }  
  70.  
  71.     public void setValue(String value) {  
  72.         this.value = value;  
  73.     }  
  74.       
  75.     @Override 
  76.     public String toString() {  
  77.         StringBuffer sb = new StringBuffer();  
  78.         sb.append("Response [name: " + name  + ", value: " + value + "]");  
  79.         return sb.toString();  
  80.     }  
  81. }  

看看Server端的代碼

  1. package com.google.code.garbagecan.minastudy.sample3;  
  2.  
  3. import java.io.IOException;  
  4. import java.net.InetSocketAddress;  
  5.  
  6. import org.apache.mina.core.service.IoAcceptor;  
  7. import org.apache.mina.core.service.IoHandlerAdapter;  
  8. import org.apache.mina.core.session.IdleStatus;  
  9. import org.apache.mina.core.session.IoSession;  
  10. import org.apache.mina.filter.codec.ProtocolCodecFilter;  
  11. import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;  
  12. import org.apache.mina.filter.logging.LoggingFilter;  
  13. import org.apache.mina.transport.socket.nio.NioSocketAcceptor;  
  14. import org.slf4j.Logger;  
  15. import org.slf4j.LoggerFactory;  
  16.  
  17. public class MyServer {  
  18.       
  19.     private static final Logger logger = LoggerFactory.getLogger(MyServer.class);  
  20.       
  21.     public static void main(String[] args) {  
  22.         IoAcceptor acceptor = new NioSocketAcceptor();  
  23.  
  24.         acceptor.getFilterChain().addLast("logger"new LoggingFilter());  
  25.         acceptor.getFilterChain().addLast("codec"new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));  
  26.  
  27.         acceptor.setHandler(new IoHandlerAdapter() {  
  28.               
  29.             @Override 
  30.             public void sessionCreated(IoSession session) throws Exception {  
  31.             }  
  32.               
  33.             @Override 
  34.             public void sessionOpened(IoSession session) throws Exception {  
  35.             }  
  36.  
  37.             @Override 
  38.             public void sessionClosed(IoSession session) throws Exception {  
  39.             }  
  40.  
  41.             @Override 
  42.             public void sessionIdle(IoSession session, IdleStatus status) throws Exception {  
  43.             }  
  44.  
  45.             @Override 
  46.             public void exceptionCaught(IoSession session, Throwable cause) throws Exception {  
  47.                 logger.error(cause.getMessage(), cause);  
  48.                 session.close(true);  
  49.             }  
  50.  
  51.             @Override 
  52.             public void messageReceived(IoSession session, Object message) throws Exception {  
  53.                 logger.info("Received " + message);  
  54.                 MyRequestObject myReqOjb = (MyRequestObject) message;  
  55.                 MyResponseObject myResObj = new MyResponseObject(myReqOjb.getName(), myReqOjb.getValue());  
  56.                 session.write(myResObj);  
  57.             }  
  58.  
  59.             @Override 
  60.             public void messageSent(IoSession session, Object message) throws Exception {  
  61.                 logger.info("Sent " + message);  
  62.             }  
  63.         });  
  64.           
  65.         try {  
  66.             acceptor.bind(new InetSocketAddress(10000));  
  67.         } catch (IOException ex) {  
  68.             logger.error(ex.getMessage(), ex);  
  69.         }  
  70.     }  

1. 首先創(chuàng)建I/O Service,這里使用的是NioSocketAcceptor類來創(chuàng)建了一個IoAcceptor實例。

2. 創(chuàng)建I/O Filter Chain,這里使用了兩個個IoFilter,一個是LoggingFilter用來記錄日志和打印事件消息,另一個是ProtocolCodecFilter實例用來編碼數(shù)據(jù),這里使用了ObjectSerializationCodecFactory類來序列化或反序列化數(shù)據(jù)成java對象。

3. 創(chuàng)建I/O Handler,這里主要看一下messageReceived方法,其總接收了MyRequestObject對象,然后又發(fā)送了一個MyResponseObject對象給Client端。

4. ***就是讓IoAcceptor類實例綁定端口實現(xiàn)監(jiān)聽。

看看Client端的代碼

  1. package com.google.code.garbagecan.minastudy.sample3;  
  2.  
  3. import java.net.InetSocketAddress;  
  4.  
  5. import org.apache.mina.core.RuntimeIoException;  
  6. import org.apache.mina.core.future.ConnectFuture;  
  7. import org.apache.mina.core.service.IoConnector;  
  8. import org.apache.mina.core.service.IoHandlerAdapter;  
  9. import org.apache.mina.core.session.IdleStatus;  
  10. import org.apache.mina.core.session.IoSession;  
  11. import org.apache.mina.filter.codec.ProtocolCodecFilter;  
  12. import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;  
  13. import org.apache.mina.filter.logging.LoggingFilter;  
  14. import org.apache.mina.transport.socket.nio.NioSocketConnector;  
  15. import org.slf4j.Logger;  
  16. import org.slf4j.LoggerFactory;  
  17.  
  18. public class MyClient {  
  19.       
  20.     private static final Logger logger = LoggerFactory.getLogger(MyClient.class);  
  21.       
  22.     public static void main(String[] args) {  
  23.         IoConnector connector = new NioSocketConnector();  
  24.         connector.setConnectTimeoutMillis(10 * 1000);  
  25.           
  26.         connector.getFilterChain().addLast("logger"new LoggingFilter());  
  27.         connector.getFilterChain().addLast("codec"new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));  
  28.           
  29.         connector.setHandler(new IoHandlerAdapter() {  
  30.               
  31.             @Override 
  32.             public void sessionCreated(IoSession session) throws Exception {  
  33.             }  
  34.  
  35.             @Override 
  36.             public void sessionOpened(IoSession session) throws Exception {  
  37.                 MyRequestObject myObj = new MyRequestObject("my name""my value");  
  38.                 session.write(myObj);  
  39.             }  
  40.  
  41.             @Override 
  42.             public void sessionClosed(IoSession session) throws Exception {  
  43.             }  
  44.  
  45.             @Override 
  46.             public void sessionIdle(IoSession session, IdleStatus status) throws Exception {  
  47.             }  
  48.  
  49.             @Override 
  50.             public void exceptionCaught(IoSession session, Throwable cause) throws Exception {  
  51.                 logger.error(cause.getMessage(), cause);  
  52.                 session.close(true);  
  53.             }  
  54.  
  55.             @Override 
  56.             public void messageReceived(IoSession session, Object message) throws Exception {  
  57.                 MyResponseObject myResObj = (MyResponseObject) message;  
  58.                 logger.info("Received " + myResObj);  
  59.                 session.close(true);  
  60.             }  
  61.  
  62.             @Override 
  63.             public void messageSent(IoSession session, Object message) throws Exception {  
  64.                 logger.info("Sent " + message);  
  65.             }  
  66.         });  
  67.  
  68.         IoSession session = null;  
  69.         try {  
  70.             ConnectFuture future = connector.connect(new InetSocketAddress("localhost"10000));  
  71.             future.awaitUninterruptibly();  
  72.             session = future.getSession();  
  73.         } catch (RuntimeIoException e) {  
  74.             logger.error(e.getMessage(), e);  
  75.         }  
  76.  
  77.         session.getCloseFuture().awaitUninterruptibly();  
  78.         connector.dispose();  
  79.     }  

1. 首先創(chuàng)建I/O Service,這里使用的是NioSocketConnector類來創(chuàng)建了一個IoConnector實例,并設置連接超時為10秒。

2. 創(chuàng)建I/O Filter Chain,和服務器端同樣設置了兩個IoFilter,一個是LoggingFilter用來記錄日志和打印事件消息,另一個是ProtocolCodecFilter實例用來編碼數(shù)據(jù),這里也使用了ObjectSerializationCodecFactory類來序列化或反序列化數(shù)據(jù)成java對象。

3. 創(chuàng)建I/O Handler,主要看一下sessionOpened方法,其中在會話建立事件中發(fā)送了MyRequestObject對象,然后在messageReceived方法中又接受了MyResponseObject對象。

4. ***就是IoConnector實例類連接遠端的Server。

下面測試一下上面的程序,首先運行MyServer類,然后運行MyClient類,就可以分別在各自的終端上看到事件日志以及發(fā)送/接收的對象了。

原文鏈接:http://blog.csdn.net/kongxx/article/details/7520599

【編輯推薦】

  1. Apache MINA實戰(zhàn)之牛刀小試
  2. Java程序設計:圖形與多媒體處理
  3. Java集合框架總結(jié):TreeSet類的排序問題
  4. 詳解Java類的生命周期
  5. Java理論與實踐: Web層的狀態(tài)復制
責任編輯:林師授 來源: kongxx的博客
相關推薦

2012-05-03 10:24:02

ApacheMINAJava

2012-05-03 11:35:56

ApacheCXFJava

2012-02-15 10:40:37

JavaJava Socket

2012-05-07 14:15:41

ApacheCXFJava

2012-02-15 10:44:20

JavaJava Socket

2012-02-15 10:37:38

JavaJava Socket

2009-12-09 10:34:13

ibmdwJavaApache

2011-03-09 09:44:15

JavaMina框架

2016-09-28 18:10:59

微信程序MINA

2012-05-03 11:51:59

ApacheCXFJava

2012-05-03 11:43:32

ApacheCXFRESTful

2022-10-24 00:26:51

大數(shù)據(jù)Hadoop存儲層

2010-02-02 13:20:33

C++對象傳遞

2012-05-07 14:08:20

ApacheCXFJava

2013-11-01 10:43:35

日志分析Awstats實戰(zhàn)Apache

2010-06-28 14:38:12

FTP協(xié)議

2012-02-22 22:56:19

開源Apache

2011-03-21 10:49:33

LAMPApache

2009-01-08 09:52:00

2023-02-26 00:12:10

Hadoop數(shù)據(jù)湖存儲
點贊
收藏

51CTO技術(shù)棧公眾號

精品欧美一区二区久久| 国产精品成人在线观看| 日本中文字幕成人| 久久视频精品在线观看| 国产美女视频一区二区 | 国产主播av在线| 中文成人在线| 大桥未久av一区二区三区| 午夜一区二区三区| 黄片毛片在线看| 日本最新不卡在线| 欧美大片欧美激情性色a∨久久| 91精品国产自产| 欧美美女福利视频| 精品久久久香蕉免费精品视频| 色中色综合成人| 亚洲第一视频在线| 日本 国产 欧美色综合| 久久久视频在线| 天天爽天天爽天天爽| 秋霞蜜臀av久久电影网免费| 制服丝袜在线91| 激情综合网婷婷| 国产蜜臀av在线播放| 国产精品区一区二区三区| 精品午夜一区二区三区| 国产又粗又猛视频| 天堂久久一区二区三区| 午夜精品一区二区三区在线视频 | 亚洲国产精品无码久久| 免费看欧美美女黄的网站| 97视频色精品| 久久久久久久黄色| 好看的av在线| 中文字幕在线免费| 26uuu国产电影一区二区| 亚洲最大的网站| 中文字幕 国产精品| 一区三区视频| 欧美精品一区二区免费| 精品伦精品一区二区三区视频密桃| 美女视频免费精品| 日韩欧美亚洲国产另类| 992kp免费看片| 成人国产精品| 欧美在线不卡一区| 成人一区二区三| 亚洲一级少妇| 欧美日韩视频免费播放| 国产女主播自拍| 欧美性猛片xxxxx免费中国| 亚洲同性同志一二三专区| 亚洲一区bb| jizz在线免费观看| 国产肉丝袜一区二区| 日本公妇乱淫免费视频一区三区| 色香蕉在线视频| av中文字幕不卡| 黄色99视频| 天天色天天操天天射| a级精品国产片在线观看| 国产乱码一区| 亚洲aⅴ乱码精品成人区| 91丨porny丨国产| 鲁丝一区鲁丝二区鲁丝三区| 欧美日韩伦理片| 久久精品一级爱片| 深田咏美在线x99av| av男人的天堂在线| 亚洲欧洲另类国产综合| 路边理发店露脸熟妇泻火| 18av在线播放| 亚洲国产精品精华液网站 | 樱桃成人精品视频在线播放| 久久久久久12| 欧美亚洲精品天堂| 视频一区视频二区中文| 国产精品美女av| 99这里有精品视频| 成熟亚洲日本毛茸茸凸凹| 国产精品一区二区三区四区五区| 人妻一区二区三区| 国产日韩欧美麻豆| 在线观看视频黄色| 91制片在线观看| 91福利国产精品| 亚洲黄色片免费| 懂色av一区二区| 亚洲免费高清视频| 91香蕉视频网| 一区福利视频| 国产精品情侣自拍| 丰满少妇一级片| 久久久久国产免费免费| 影音先锋欧美资源| 丁香花电影在线观看完整版| 91福利精品视频| 在线视频日韩欧美| www.久久东京| 中文字幕欧美专区| 久久综合激情网| 日韩电影在线一区二区三区| 91丨九色丨国产在线| 爽爽视频在线观看| 亚洲色图清纯唯美| 久久国产乱子伦免费精品| 在线高清欧美| 国产视频精品久久久| 手机在线中文字幕| 亚洲欧美日韩精品一区二区 | 久久精品中文字幕电影| 欧美三级一区二区三区| 国产在线国偷精品产拍免费yy| 国产区一区二区三区| 蜜桃av在线免费观看| 欧美性猛交xxxx黑人猛交| 亚洲国产欧美91| 国内黄色精品| 国内精品伊人久久| 国产伦理一区二区| 久久久五月婷婷| 日韩成人三级视频| 日韩精品一级毛片在线播放| 日韩av在线看| 全亚洲最色的网站在线观看| av免费播放网站| 国产日韩一区二区三区在线| 999精品视频一区二区三区| 国产一区精品| 欧美日韩中文在线观看| 中文字幕制服丝袜| 综合国产在线| 国产综合视频在线观看| 高清美女视频一区| 欧美视频在线观看 亚洲欧| 日韩av加勒比| 91精品啪在线观看国产18| 国产精品成av人在线视午夜片| 天天操天天操天天干| 一区二区三区精品久久久| 在线免费观看av网| 91精品国产成人观看| 国产欧美精品在线| 91社区在线高清| 欧美午夜一区二区三区免费大片| 三上悠亚影音先锋| 久久精品欧洲| 麻豆亚洲一区| 欧美日韩精品免费观看视完整| 日韩成人免费视频| 成年人午夜视频| 99国产精品国产精品久久| 拔插拔插海外华人免费| 第一区第二区在线| 久久久久久有精品国产| 狠狠躁夜夜躁av无码中文幕| 亚洲成av人片一区二区梦乃 | 国产在线不卡一区二区三区| 久久激情视频免费观看| 一级特黄aaa| 亚洲精品免费播放| 欧美性猛交乱大交| 亚洲成人中文| 欧美日韩综合网| 欧美日韩尤物久久| 日韩三级成人av网| www五月婷婷| 亚洲va欧美va天堂v国产综合| 欧美肉大捧一进一出免费视频| 亚洲乱码视频| 欧洲亚洲一区二区| 美女色狠狠久久| 不卡毛片在线看| www夜片内射视频日韩精品成人| 亚洲五码中文字幕| 国产乱了高清露脸对白| 久久人人97超碰国产公开结果| 日韩高清av| 高清一区二区中文字幕| 欧美黑人一级爽快片淫片高清| 蜜臀av中文字幕| 色噜噜狠狠一区二区三区果冻| 中文字幕在线观看二区| 国产一区二区三区不卡在线观看| 久久成人福利视频| 精品国产成人| 亚洲一区二区三区毛片| 日本乱码一区二区三区不卡| 国产一级揄自揄精品视频| 国产精品久久久久精| 亚洲午夜日本在线观看| 亚洲日本精品视频| 国产盗摄精品一区二区三区在线| 国产人妻777人伦精品hd| 欧美精选视频在线观看| 97夜夜澡人人双人人人喊| 亚洲国产福利| 欧美成人h版在线观看| 青草久久伊人| 日韩欧美三级在线| 亚洲一区二区免费视频软件合集 | 欧美老肥妇做.爰bbww| 欧美日韩人妻精品一区二区三区| 97国产一区二区| 成人黄色一级大片| 99伊人成综合| 亚洲美女自拍偷拍| 日韩美女精品| 91午夜理伦私人影院| 亚洲永久av| 欧美猛少妇色xxxxx| 成人免费高清在线播放| 亚洲精品一区二区三区蜜桃下载| 91精品国自产| 色先锋资源久久综合| 欧美日韩免费一区二区| 日本一二三不卡| 成年人网站免费看| 国产精品一区二区黑丝| 九九热99视频| 麻豆久久精品| 国产 日韩 欧美在线| 99久久夜色精品国产亚洲狼| 日韩aⅴ视频一区二区三区| 岛国av一区| 99久久综合狠狠综合久久止 | 国产在线激情视频| 尤物tv国产一区| 青春有你2免费观看完整版在线播放高清| 欧美一级精品在线| 97人妻精品一区二区三区软件| 欧美性色视频在线| 欧美日韩综合在线观看| 亚洲一区二区在线播放相泽| 日韩在线观看视频一区二区| 国产精品丝袜黑色高跟| 四虎国产精品成人免费入口| 99精品视频在线播放观看| 男人添女人荫蒂国产| 久草这里只有精品视频| 高清一区在线观看| 日日夜夜精品视频天天综合网| 精品无码一区二区三区在线| 激情综合中文娱乐网| 91成人综合网| 午夜日韩视频| 成年人深夜视频| 欧美+亚洲+精品+三区| 影音先锋男人的网站| 亚洲澳门在线| 大片在线观看网站免费收看| 重囗味另类老妇506070| a级网站在线观看| 一区二区不卡| 毛片av在线播放| 激情五月***国产精品| 福利视频免费在线观看| 一区在线免费观看| 青青青免费在线| 国产欧美午夜| 久久精品网站视频| 免费观看一级特黄欧美大片| www.色欧美| 国产精品99久久不卡二区| 久久久久亚洲av成人网人人软件| 国产成a人亚洲精| 国产伦精品一区二区三区精品| 成人av第一页| 高潮毛片无遮挡| 国产精品久久夜| 国产一区二区三区在线视频观看| 一区二区三区在线观看国产| 日韩av在线电影| 色悠悠亚洲一区二区| a片在线免费观看| 91 com成人网| 天堂在线资源库| 在线观看国产精品91| 18av在线视频| 欧美一级片久久久久久久| 丁香婷婷久久| 懂色av一区二区三区在线播放| 伊人精品一区| 中文字幕中文字幕一区三区| 亚洲午夜电影| 老熟妇仑乱视频一区二区| 久久66热偷产精品| 亚洲一区二区三区四区五区六区 | 精品91自产拍在线观看一区| 欧美男男激情freegay| 久久精品中文字幕| 爱情电影社保片一区| 成人性教育视频在线观看| 激情小说亚洲色图| 亚洲一卡二卡三卡| 中文欧美日韩| 尤物网站在线看| 久久午夜国产精品| 欧美色图亚洲天堂| 日本大香伊一区二区三区| www久久久com| 国产亚洲激情在线| 成年人视频免费在线播放| 国产精品久久色| 久久久久久毛片免费看| 亚洲精品视频一二三| 亚洲黄色三级| 在线视频观看一区二区| 久久综合狠狠综合| 欧美国产精品一二三| 欧美日韩在线观看一区二区| 天天色综合av| 欧美疯狂性受xxxxx另类| 福利视频亚洲| 欧美日韩在线不卡一区| 亚洲无线视频| 在线观看欧美一区二区| 国产精品欧美久久久久一区二区| 欧美三级一区二区三区| 欧美成人一区二区三区在线观看 | 里番精品3d一二三区| 欧美 另类 交| 奇米色777欧美一区二区| 亚洲精品女人久久久| 亚洲综合免费观看高清在线观看| 特级西西444www大胆免费看| 日韩高清av在线| 波多野结衣精品| 95av在线视频| 国产精品久久久久久久| 久久久久久久久久久久91| 久久先锋影音av鲁色资源| 在线观看精品国产| 精品国产a毛片| 国产探花在线观看| 国产传媒一区二区| 国产精品v亚洲精品v日韩精品| 亚洲色图偷拍视频| 国产精品美女久久久久久久久 | 666欧美在线视频| h视频网站在线观看| 国产成人极品视频| 免费精品国产| 成人午夜视频免费在线观看| 豆国产96在线|亚洲| 玖玖爱免费视频| 精品久久久久久无| av中文字幕在线观看第一页| 国产欧美在线一区二区| 亚洲精品字幕在线| 国产精品久久一卡二卡| 一级特黄免费视频| 亚洲一区二区精品| 69堂免费精品视频在线播放| 日本午夜精品电影| 青青草国产精品97视觉盛宴| 一本在线免费视频| 91精品国产欧美一区二区18| 欧洲在线视频| 久久综合婷婷综合| 免费观看30秒视频久久| 欧美日韩国产一二三区| 91麻豆精品国产| 视频在线这里都是精品| 国产精品日韩欧美一区二区三区 | 在线观看免费黄网站| 国产精品网曝门| 99国产精品久久久久99打野战| 久久91亚洲人成电影网站 | 麻豆国产欧美日韩综合精品二区| 毛片久久久久久| 日韩欧美综合一区| 18video性欧美19sex高清| 久久99精品久久久久久青青日本 | 中文字幕55页| 亚洲成人一二三| 番号在线播放| 亚洲aaa激情| 国产精品日韩久久久| 国产又粗又硬视频| 日韩一区二区电影在线| 欧美激情网站| 亚洲精品中文字幕在线| 国产91精品一区二区麻豆网站| 麻豆久久久久久久久久| 中文字幕免费精品一区| 亚洲亚洲一区二区三区| 韩国日本在线视频| 亚洲三级小视频| 天堂影院在线| 成人日韩在线电影| 国产精品亚洲综合久久| 性生交大片免费全黄| 亚洲精品电影在线观看| 福利一区二区| 99精品人妻少妇一区二区 | 国产成人免费视频网站| 亚洲黄色免费观看| 精品少妇v888av| 成人亚洲一区二区|