日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Netty实战 IM即时通讯系统(六)实战: 客户端和服务端双向通信

發布時間:2024/4/30 windows 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Netty实战 IM即时通讯系统(六)实战: 客户端和服务端双向通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

##

Netty實戰 IM即時通訊系統(六)實戰: 客戶端和服務端雙向通信

零、 目錄

  • IM系統簡介
    • Netty 簡介
    • Netty 環境配置
    • 服務端啟動流程
    • 實戰: 客戶端和服務端雙向通信
    • 數據傳輸載體ByteBuf介紹
    • 客戶端與服務端通信協議編解碼
    • 實現客戶端登錄
    • 實現客戶端與服務端收發消息
    • pipeline與channelHandler
    • 構建客戶端與服務端pipeline
    • 拆包粘包理論與解決方案
    • channelHandler的生命周期
    • 使用channelHandler的熱插拔實現客戶端身份校驗
    • 客戶端互聊原理與實現
    • 群聊的發起與通知
    • 群聊的成員管理(加入與退出,獲取成員列表)
    • 群聊消息的收發及Netty性能優化
    • 心跳與空閑檢測
    • 總結
    • 擴展

    ###六、 實戰: 客戶端和服務端雙向通信

  • 本節我們要實現的功能是客戶端連接成功后,向服務端寫出一段數據 , 服務端收到數據后打印 , 并向客戶端回復一段數據 。

  • 我們先做一個代碼框架 , 然后在框架上面做修改

    public class Test_07_客戶端和服務端雙向通信 {public static void main(String[] args) {Test_07_Server.start(8000);Test_07_Client.start("127.0.0.1" , 8000 ,5);}}class Test_07_Client{public static void start(String IP , int port ,int maxRetry){NioEventLoopGroup workerGroup = new NioEventLoopGroup();Bootstrap bootstrap = new Bootstrap();bootstrap.group(workerGroup).channel(NioSocketChannel.class).handler(new ChannelInitializer<NioSocketChannel>() {@Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {}});connect(bootstrap , IP , port , maxRetry);}private static void connect(Bootstrap bootstrap, String IP, int port, int maxRetry , int... retryIndex) {bootstrap.connect(IP , port).addListener(future ->{int[] finalRetryIndex;if(future.isSuccess()) {System.out.println("連接成功");}else if(maxRetry ==0) {System.out.println("達到最大重試此時,放棄重試");}else {// 初始化 重試計數if(retryIndex.length == 0) {finalRetryIndex = new int[]{0};}else {finalRetryIndex = retryIndex;}// 計算時間間隔int delay = 1 << finalRetryIndex[0];// 執行重試System.out.println(new Date() +" 連接失敗,剩余重試次數:"+ maxRetry + ","+delay+"秒后執行重試");bootstrap.config().group().schedule(()->{connect(bootstrap , IP, port , maxRetry -1 , finalRetryIndex[0]+1);}, delay, TimeUnit.SECONDS);}});}}class Test_07_Server{public static void start(int port){NioEventLoopGroup bossGroup = new NioEventLoopGroup();NioEventLoopGroup workerGroup = new NioEventLoopGroup();ServerBootstrap serverBootstrap = new ServerBootstrap();serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer<NioSocketChannel>() {@Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {ch.pipeline().addLast(new Test_07_ServerHandler());}});bind(serverBootstrap, port);}private static void bind(ServerBootstrap serverBootstrap, int port) {serverBootstrap.bind(port).addListener(future -> {if(future.isSuccess()) {System.out.println("服務端:端口【"+port+"】綁定成功!");}else {System.out.println("服務端:端口【"+port+"】綁定失敗,嘗試綁定【"+(port+1)+"】!");bind(serverBootstrap, port+1);}});}}
  • 客戶端發送數據到服務端

  • 在《客戶端啟動流程》這一小節 , 我們提到 客戶端相關的數據讀寫邏輯是通過BootStrap的handler()方法指定

    bootstrap.group(workerGroup).channel(NioSocketChannel.class).handler(new ChannelInitializer<NioSocketChannel>() {@Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {}});
  • 現在我們在initChannel()中給客戶端添加一個邏輯處理器 , 這個處理器的作用就是負責向服務端寫數據

    bootstrap.group(workerGroup).channel(NioSocketChannel.class).handler(new ChannelInitializer<NioSocketChannel>() {@Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {// 添加業務處理邏輯 可以添加自定義的業務處理邏輯也可以添加 Netty自帶的簡單通用的處理邏輯ch.pipeline().addLast(new Test_07_ClientHandler());}});
  • ch.pipeline()方法返回的是和這條連接相關的邏輯處理鏈 , 采用了責任鏈處理模式 , 這里不理解沒關系 , 后面會講到。

  • 然后再調用addLast()方法添加一個邏輯處理器 , 這個邏輯處理器為的就是在客戶端建立連接成功之后向服務端寫數據 , 下面是這個邏輯處理器的代碼:

    class Test_07_ClientHandler extends ChannelInboundHandlerAdapter {@Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {System.out.println(new Date() + " 客戶端寫出數據...");// 1. 獲取數據ByteBuf buffer = getByteBuf(ctx);// 2. 寫數據ctx.channel().writeAndFlush(buffer);}private ByteBuf getByteBuf(ChannelHandlerContext ctx) {// 獲取二進制抽象 ByteBufferByteBuf buf = ctx.alloc().buffer();// 準備數據byte[] bs = "你好,奧特曼!".getBytes(Charset.forName("UTF-8"));// 把數據填充到 bufbuf.writeBytes(bs);return buf;}}
  • 這個邏輯處理器繼承自ChannelInboundHandlerAdapter ,然后覆蓋了channelActive()方法 , 這個方法會在客戶端連接建立成功之后被調用
  • 客戶端連接建立成功之后 , 調用channelActive() , 在這個方法里面 , 我們編寫向服務端寫數據的邏輯
  • 向服務端寫數據分為兩步 , 首先我們要獲取一個netty對二進制數據抽象的二進制ByteBuf , 上面代碼中ctx.alloc() 獲取一個ByteBuf的內存管理器 , 這個內存管理器的作用就是分配一個ByteBuf , 然后我們把字符串的二進制數據填充到ByteBuf , 這樣我們就獲取到了Netty需要的一個數據格式, 最后我們調用ctx.channel().writeAndFlush()把數據寫到服務端。
  • 以上就是 向服務端寫數據的邏輯 , 和傳統的socket 編程不同的是 , Netty 里面的數據是以ByteBuf為單位的 , 所有需要寫出的數據必須塞到一個ByteBuf里 , 需要讀取的數據也是如此。
  • 服務端讀取客戶端數據

  • 服務端的數據處理邏輯 是通過ServerBootStrap 的childHandler()方法指定

    serverBootStrtap.childHandler(new ChannelInitializer<NioSocketChannel>() {@Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {// TODO Auto-generated method stub}})
  • 現在 , 我們在initChannel() 中 給服務端添加一個邏輯處理器 , 這個處理器 的作用就是負責客戶端讀數據

    serverBootStrtap.childHandler(new ChannelInitializer<NioSocketChannel>() {@Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {ch.pipeline().addLast(new Test_07_ServerHandler());}})
  • 這個方法里的邏輯和客戶端類似 , 獲取服務端關于這條連接的邏輯處理鏈pipeline , 然后添加一個邏輯處理器 , 負責讀取客戶端發來的數據

    class Test_07_ServerHandler extends ChannelInboundHandlerAdapter{@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf = (ByteBuf) msg;System.out.println(new Date() + ": 服務端讀到數據->"+ buf.toString(Charset.forName("UTF-8")));}}
  • 服務端的邏輯處理器同樣是繼承自ChannelInboundHandlerAdapter , 與客戶端不同的是 , 這里覆蓋的方法是 channelRead() ,這個方法在接收到數據之后會被回調
  • 這里的msg 值的是Netty里面數據讀寫的載體 , 為什么不直接是ByteBuf , 而需要我們強轉一下 , 我們后面會分析道 , 這里我們強轉之后 , 然后調用buteBuf.toString() 就能夠拿到我們客戶端發過來的字符串數據。
  • 運行測試

  • 完整代碼

    import java.nio.charset.Charset;import java.util.Date;import java.util.concurrent.TimeUnit;import io.netty.bootstrap.Bootstrap;import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.channel.ChannelHandlerContext;import io.netty.channel.ChannelInboundHandlerAdapter;import io.netty.channel.ChannelInitializer;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.nio.NioServerSocketChannel;import io.netty.channel.socket.nio.NioSocketChannel;public class Test_07_客戶端和服務端雙向通信 {public static void main(String[] args) throws Exception {Test_07_Server.start(8000);Test_07_Client.start("127.0.0.1", 8000, 5);}}class Test_07_Client {public static void start(String IP, int port, int maxRetry) {NioEventLoopGroup workerGroup = new NioEventLoopGroup();Bootstrap bootstrap = new Bootstrap();bootstrap.group(workerGroup).channel(NioSocketChannel.class).handler(new ChannelInitializer<NioSocketChannel>() {@Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {// 添加業務處理邏輯 可以添加自定義的業務處理邏輯也可以添加 Netty自帶的簡單通用的處理邏輯ch.pipeline().addLast(new Test_07_ClientHandler());}});connect(bootstrap, IP, port, maxRetry);}private static void connect(Bootstrap bootstrap, String IP, int port, int maxRetry, int... retryIndex) {bootstrap.connect(IP, port).addListener(future -> {int[] finalRetryIndex;if (future.isSuccess()) {System.out.println("客戶端連接【"+IP+":"+port+"】成功");} else if (maxRetry == 0) {System.out.println("達到最大重試此時,放棄重試");} else {// 初始化 重試計數if (retryIndex.length == 0) {finalRetryIndex = new int[] { 0 };} else {finalRetryIndex = retryIndex;}// 計算時間間隔int delay = 1 << finalRetryIndex[0];// 執行重試System.out.println(new Date() + " 連接失敗,剩余重試次數:" + maxRetry + "," + delay + "秒后執行重試");bootstrap.config().group().schedule(() -> {connect(bootstrap, IP, port, maxRetry - 1, finalRetryIndex[0] + 1);}, delay, TimeUnit.SECONDS);}});}}class Test_07_Server {public static void start(int port) {NioEventLoopGroup bossGroup = new NioEventLoopGroup();NioEventLoopGroup workerGroup = new NioEventLoopGroup();ServerBootstrap serverBootstrap = new ServerBootstrap();serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer<NioSocketChannel>() {@Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {ch.pipeline().addLast(new Test_07_ServerHandler());}});bind(serverBootstrap, port);}private static void bind(ServerBootstrap serverBootstrap, int port) {serverBootstrap.bind(port).addListener(future -> {if(future.isSuccess()) {System.out.println("服務端:端口【"+port+"】綁定成功!");}else {System.out.println("服務端:端口【"+port+"】綁定失敗,嘗試綁定【"+(port+1)+"】!");bind(serverBootstrap, port+1);}});}}class Test_07_ClientHandler extends ChannelInboundHandlerAdapter {@Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {String content = "你好,奧特曼!";System.out.println(new Date() + " 客戶端寫出數據:"+content);// 1. 獲取數據ByteBuf buffer = getByteBuf(ctx , content);// 2. 寫數據ctx.channel().writeAndFlush(buffer);}private ByteBuf getByteBuf(ChannelHandlerContext ctx , String content ) {// 獲取二進制抽象 ByteBufferByteBuf buf = ctx.alloc().buffer();// 準備數據byte[] bs = content.getBytes(Charset.forName("UTF-8"));// 把數據填充到 bufbuf.writeBytes(bs);return buf;}}class Test_07_ServerHandler extends ChannelInboundHandlerAdapter{@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf = (ByteBuf) msg;System.out.println(new Date() + ": 服務端讀到數據->"+ buf.toString(Charset.forName("UTF-8")));}}
  • 運行結果:

  • 服務端回復數據給客戶端

  • 服務端向客戶端寫數據的邏輯與客戶端向服務端寫數據的邏輯一樣 , 先創建一個ByteBuf , 然后填充二進制數據 , 最后調用writeAndFlush()方法寫出去

    class Test_07_ServerHandler extends ChannelInboundHandlerAdapter{@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf = (ByteBuf) msg;System.out.println(new Date() + ": 服務端讀到數據->"+ buf.toString(Charset.forName("UTF-8")));// 向客戶端回復數據String content = "你好,田先森!";System.out.println(new Date() +":服務端寫出數據-> "+content);ByteBuf byteBuf = getByteBuf(ctx , content);ctx.channel().writeAndFlush(byteBuf);}private static ByteBuf getByteBuf(ChannelHandlerContext cxt , String content) {// 獲取 二進制抽象 ByteBufByteBuf byteBuf = cxt.alloc().buffer();// 準備數據byte[] bs = content.getBytes(Charset.forName("UTF-8"));// 把數據填充到buf中byteBuf.writeBytes(bs);return byteBuf;}}
  • 現在輪到客戶端了 , 客戶端讀取數據的邏輯和服務端讀數據的邏輯一樣 , 同樣是覆蓋channelRead() 方法

    class Test_07_ClientHandler extends ChannelInboundHandlerAdapter {@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf byteBuf = (ByteBuf) msg;System.out.println(new Date()+": 客戶端讀到數據 ->"+ byteBuf.toString(Charset.forName("UTF-8")));}@Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {String content = "你好,奧特曼!";System.out.println(new Date() + " 客戶端寫出數據:"+content);// 1. 獲取數據ByteBuf buffer = getByteBuf(ctx , content);// 2. 寫數據ctx.channel().writeAndFlush(buffer);}private ByteBuf getByteBuf(ChannelHandlerContext ctx , String content ) {// 獲取二進制抽象 ByteBufferByteBuf buf = ctx.alloc().buffer();// 準備數據byte[] bs = content.getBytes(Charset.forName("UTF-8"));// 把數據填充到 bufbuf.writeBytes(bs);return buf;}}
  • 現在 客戶端和服務端就實現了雙向通信

  • 完整代碼:

    import java.nio.charset.Charset;import java.util.Date;import java.util.concurrent.TimeUnit;import io.netty.bootstrap.Bootstrap;import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.channel.ChannelHandlerContext;import io.netty.channel.ChannelInboundHandlerAdapter;import io.netty.channel.ChannelInitializer;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.nio.NioServerSocketChannel;import io.netty.channel.socket.nio.NioSocketChannel;public class Test_07_客戶端和服務端雙向通信 {public static void main(String[] args) throws Exception {Test_07_Server.start(8000);Test_07_Client.start("127.0.0.1", 8000, 5);}}class Test_07_Client {public static void start(String IP, int port, int maxRetry) {NioEventLoopGroup workerGroup = new NioEventLoopGroup();Bootstrap bootstrap = new Bootstrap();bootstrap.group(workerGroup).channel(NioSocketChannel.class).handler(new ChannelInitializer<NioSocketChannel>() {@Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {// 添加業務處理邏輯 可以添加自定義的業務處理邏輯也可以添加 Netty自帶的簡單通用的處理邏輯ch.pipeline().addLast(new Test_07_ClientHandler());}});connect(bootstrap, IP, port, maxRetry);}private static void connect(Bootstrap bootstrap, String IP, int port, int maxRetry, int... retryIndex) {bootstrap.connect(IP, port).addListener(future -> {int[] finalRetryIndex;if (future.isSuccess()) {System.out.println("客戶端連接【"+IP+":"+port+"】成功");} else if (maxRetry == 0) {System.out.println("達到最大重試此時,放棄重試");} else {// 初始化 重試計數if (retryIndex.length == 0) {finalRetryIndex = new int[] { 0 };} else {finalRetryIndex = retryIndex;}// 計算時間間隔int delay = 1 << finalRetryIndex[0];// 執行重試System.out.println(new Date() + " 連接失敗,剩余重試次數:" + maxRetry + "," + delay + "秒后執行重試");bootstrap.config().group().schedule(() -> {connect(bootstrap, IP, port, maxRetry - 1, finalRetryIndex[0] + 1);}, delay, TimeUnit.SECONDS);}});}}class Test_07_Server {public static void start(int port) {NioEventLoopGroup bossGroup = new NioEventLoopGroup();NioEventLoopGroup workerGroup = new NioEventLoopGroup();ServerBootstrap serverBootstrap = new ServerBootstrap();serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer<NioSocketChannel>() {@Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {ch.pipeline().addLast(new Test_07_ServerHandler());}});bind(serverBootstrap, port);}private static void bind(ServerBootstrap serverBootstrap, int port) {serverBootstrap.bind(port).addListener(future -> {if(future.isSuccess()) {System.out.println("服務端:端口【"+port+"】綁定成功!");}else {System.out.println("服務端:端口【"+port+"】綁定失敗,嘗試綁定【"+(port+1)+"】!");bind(serverBootstrap, port+1);}});}}class Test_07_ClientHandler extends ChannelInboundHandlerAdapter {@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf byteBuf = (ByteBuf) msg;System.out.println(new Date()+": 客戶端讀到數據 ->"+ byteBuf.toString(Charset.forName("UTF-8")));}@Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {String content = "你好,奧特曼!";System.out.println(new Date() + " 客戶端寫出數據:"+content);// 1. 獲取數據ByteBuf buffer = getByteBuf(ctx , content);// 2. 寫數據ctx.channel().writeAndFlush(buffer);}private ByteBuf getByteBuf(ChannelHandlerContext ctx , String content ) {// 獲取二進制抽象 ByteBufferByteBuf buf = ctx.alloc().buffer();// 準備數據byte[] bs = content.getBytes(Charset.forName("UTF-8"));// 把數據填充到 bufbuf.writeBytes(bs);return buf;}}class Test_07_ServerHandler extends ChannelInboundHandlerAdapter{@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf = (ByteBuf) msg;System.out.println(new Date() + ": 服務端讀到數據->"+ buf.toString(Charset.forName("UTF-8")));// 向客戶端回復數據String content = "你好,田先森!";System.out.println(new Date() +":服務端寫出數據-> "+content);ByteBuf byteBuf = getByteBuf(ctx , content);ctx.channel().writeAndFlush(byteBuf);}private static ByteBuf getByteBuf(ChannelHandlerContext cxt , String content) {// 獲取 二進制抽象 ByteBufByteBuf byteBuf = cxt.alloc().buffer();// 準備數據byte[] bs = content.getBytes(Charset.forName("UTF-8"));// 把數據填充到buf中byteBuf.writeBytes(bs);return byteBuf;}}
  • 執行結果

  • 總結

  • 本小節中 , 我們了解到客戶端和服務端的邏輯處理均是在啟動的時候 , 通過給邏輯處理鏈pipeline添加邏輯處理器 , 來編寫數據的處理邏輯 , pipeline的邏輯我們會在后面分析
  • 接下來我們學到了 在客戶端連接成功之后會回調邏輯處理器的channelActive()方法 , 而不管是服務端還是客戶端 , 收到數據之后都會調用channelRead方法
  • 寫數據用writeAndFlush() 方法 客戶端與服務端交互的二進制數據載體為ByteBuf , ByteBuf 通過連接的內存管理器創建 , 字節數據填充到ByteBuf 之后才能寫到對端 , 接下來一小節 , 我們就重點來分析ByteBuf
  • 思考: 如何實現在新連接介入的時候 , 服務端主動向客戶端推送消息 , 客戶端回復服務端消息?

  • 解答: 在服務器端的邏輯處理其中也實現 channelActive() 在有新的連接接入時 會回調此方法

    class Test_07_ServerHandler extends ChannelInboundHandlerAdapter{@Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {String content = "是不是你連我了?";System.out.println(new Date() +":服務端寫出數據-> "+content);ByteBuf byteBuf = getByteBuf(ctx , content);ctx.channel().writeAndFlush(byteBuf);}@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf = (ByteBuf) msg;System.out.println(new Date() + ": 服務端讀到數據->"+ buf.toString(Charset.forName("UTF-8")));// 向客戶端回復數據String content = "你好,田先森!";System.out.println(new Date() +":服務端寫出數據-> "+content);ByteBuf byteBuf = getByteBuf(ctx , content);ctx.channel().writeAndFlush(byteBuf);}private static ByteBuf getByteBuf(ChannelHandlerContext cxt , String content) {// 獲取 二進制抽象 ByteBufByteBuf byteBuf = cxt.alloc().buffer();// 準備數據byte[] bs = content.getBytes(Charset.forName("UTF-8"));// 把數據填充到buf中byteBuf.writeBytes(bs);return byteBuf;}}
  • 總結

    以上是生活随笔為你收集整理的Netty实战 IM即时通讯系统(六)实战: 客户端和服务端双向通信的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国内精品久久天天躁人人爽 | 色全色在线资源网 | 国产免费一区二区三区网站免费 | 成人免费观看网站 | 免费看片网页 | 99视频国产精品免费观看 | 97超碰在线视 | 一区二区三区三区在线 | 国产精品网站 | 久久综合免费 | 亚洲另类视频在线观看 | 久久久久久欧美二区电影网 | 夜夜操狠狠操 | 国产精品av一区二区 | 中文字幕在线观看一区二区三区 | 99色亚洲 | 精品美女久久久久 | 午夜精品一区二区三区免费 | 超碰在线最新 | 午夜狠狠操 | 丁香网五月天 | 欧美福利视频 | 免费在线观看av网址 | 亚洲成人二区 | 国产久草在线观看 | 色多多污污在线观看 | 国产精品成人一区二区三区吃奶 | 国产中的精品av小宝探花 | 日本午夜免费福利视频 | 免费进去里的视频 | 综合色综合色 | 免费看的国产视频网站 | 精品你懂的 | 午夜99 | 人人玩人人添人人 | 久久不射网站 | 九九热免费在线观看 | 久久久久久不卡 | 久久99精品国产麻豆宅宅 | 福利一区在线视频 | 亚洲成年人av | 国产日韩欧美视频在线观看 | 亚洲天堂激情 | 国产麻豆剧传媒免费观看 | 安徽妇搡bbbb搡bbbb | 免费在线观看av片 | 久草精品在线 | 99久久激情 | 久久在线视频在线 | 亚洲人成在线电影 | 天天搞天天 | 黄网站色视频免费观看 | 精品国产欧美 | 亚洲人成人在线 | 亚洲春色综合另类校园电影 | 黄色网址a | 国产三级在线播放 | 高清在线一区二区 | 毛片的网址 | 99精品免费视频 | 在线观看久草 | 亚洲1级片| 国产成人不卡 | 成人在线播放视频 | 免费观看久久 | 欧美日视频 | 人人网av| 草草草影院 | 午夜精品婷婷 | 91免费视频黄 | 欧美韩日在线 | 国产精品美女视频网站 | 女人18片 | 日日干夜夜骑 | 国产一区二区三区免费视频 | 一区二区视频免费在线观看 | 久草免费电影 | 久久国产精品99久久久久久进口 | 国产亚洲精品av | 精品国产乱码久久久久久1区2匹 | 夜夜操网 | 亚洲精品欧美成人 | 免费人成网 | 日韩中文字幕在线不卡 | 色吊丝在线永久观看最新版本 | 日韩在线观看不卡 | 天天色天天骑天天射 | 久久久国产精品亚洲一区 | 久久电影网站中文字幕 | 久久久久久高潮国产精品视 | 精精国产xxxx视频在线播放 | 中文在线字幕观看电影 | 欧洲精品亚洲精品 | 中文字幕资源网在线观看 | 欧美另类成人 | 久久国内精品99久久6app | 五月丁香| 欧洲av在线 | 亚洲成人黄色在线 | 一区二区三区四区在线 | 日韩欧美视频免费在线观看 | 国产黄色片一级三级 | 国产无遮挡又黄又爽在线观看 | 日本少妇视频 | 免费在线观看黄色网 | 成人黄色小说网 | 欧美成人精品三级在线观看播放 | 久久久久久久久久久久亚洲 | 黄色av网站在线观看免费 | 国产一二三区在线观看 | 国产精品久久久久永久免费看 | aⅴ视频在线 | 色视频国产直接看 | 久草剧场| 亚洲一级黄色片 | 久碰视频在线观看 | 久久精品国产一区二区 | 99视频免费观看 | 欧美日韩亚洲第一 | 久久国产精品99国产精 | 999久久精品 | 日日爱999| 成年人免费观看国产 | 人人讲| 日韩精品欧美视频 | 日韩乱码中文字幕 | 激情综合五月天 | 中文字幕不卡在线88 | 久久亚洲福利 | 日本韩国欧美在线观看 | 国产精品久久二区 | 二区精品视频 | 亚洲一区二区视频在线 | av永久网址 | 日日夜夜国产 | 久久精品看片 | 欧美午夜性生活 | 国产精品手机看片 | 国产精品视屏 | 久久伦理 | 亚洲精品日韩一区二区电影 | 碰超人人 | 午夜精品久久久久久久久久久久 | 五月婷婷国产 | 欧美最猛性xxx | 最近日本字幕mv免费观看在线 | 国产精品福利在线播放 | 国产亚洲免费观看 | 992tv人人草| 日日躁天天躁 | 999成人免费视频 | 天天色欧美 | 亚洲午夜精品一区二区三区电影院 | 91中文在线观看 | 久久五月天色综合 | 99久久99久久精品国产片 | 一区二区视频电影在线观看 | 久久免费播放视频 | 日日干夜夜干 | 国产高清免费在线播放 | 99这里有精品 | 久久福利国产 | 免费情趣视频 | 午夜精品久久久久久久99婷婷 | 久久99热这里只有精品 | 视频国产在线观看18 | 一区二区三区日韩在线观看 | 99资源网 | 久草在线最新免费 | 一区二区不卡高清 | 亚洲第一成网站 | 热久久国产 | 亚洲男男gⅴgay双龙 | 999色视频| av中文资源在线 | 一区二区视频网站 | 亚洲一级在线观看 | 日韩精品视频在线观看网址 | 国产精品二区在线 | 最新中文字幕视频 | 特级黄录像视频 | 久久影视网 | 亚洲精选视频在线 | 国产精品亚洲片夜色在线 | 久久女教师 | 国内精品久久久 | 激情影音 | 精品美女久久 | 欧美日韩久久久 | 日韩在线观看视频中文字幕 | 91女子私密保健养生少妇 | 亚洲久在线 | 亚洲美女久久 | 天天鲁一鲁摸一摸爽一爽 | 在线看欧美 | 欧美成人手机版 | 免费在线观看黄网站 | 免费黄色在线播放 | 在线天堂8√ | 9999国产精品 | a级国产乱理论片在线观看 特级毛片在线观看 | 亚洲人人av | 午夜成人免费电影 | 日日夜夜婷婷 | 国产日韩欧美在线观看视频 | 免费a v在线 | 亚洲日本在线一区 | 欧美一级电影免费观看 | 日韩成年视频 | 国产精品黄色影片导航在线观看 | 久草在线视频在线观看 | 在线看国产精品 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 久久免费99精品久久久久久 | av成人免费观看 | 人人澡人人爽欧一区 | 激情网第四色 | 九九日韩 | 在线观看爱爱视频 | 黄色片网站 | 美国av大片 | 亚洲视频免费在线观看 | 久久久精品视频成人 | 天天操夜夜操国产精品 | 国产成人一二片 | 欧美乱码精品一区 | 波多野结衣在线播放一区 | 久久久久免费网站 | av片子在线观看 | 黄色日本免费 | 欧美性爽爽 | 成 人 黄 色 视频免费播放 | 日本不卡123区 | 久久精品国产成人 | 亚洲一区尤物 | 九九热精 | 久青草视频在线观看 | 欧美日韩一区二区久久 | 丁香花在线观看视频在线 | 在线中文日韩 | 国产不卡av在线播放 | 国产亚洲精品中文字幕 | 亚洲欧洲一区二区在线观看 | 久久成人麻豆午夜电影 | 久草在线欧美 | 国产成人一区二区在线观看 | 国产玖玖在线 | 色多多污污在线观看 | a√天堂中文在线 | 99精品在线视频观看 | 91在线91拍拍在线91 | 国产麻豆果冻传媒在线观看 | 天天在线视频色 | 在线影院 国内精品 | 久久久久日本精品一区二区三区 | 国产露脸91国语对白 | 成人av中文字幕在线观看 | 综合久久综合久久 | 911免费视频 | 日韩欧美视频免费在线观看 | 欧美va电影 | 日韩欧美网址 | 91av视频网站| av丁香花 | 国产精品一区二区久久精品爱微奶 | 99精品黄色片免费大全 | 久久久久久国产精品 | 精品一区二区久久久久久久网站 | 欧美日韩一区二区视频在线观看 | 婷婷精品| 欧美va在线观看 | av在线最新 | 日韩黄色软件 | 免费观看v片在线观看 | 国产精品久久久久久久av电影 | 人人狠狠综合久久亚洲 | 国产成人精品区 | 日日夜夜网站 | 国产精品二区在线 | 亚洲 av网站 | 97在线观视频免费观看 | 久久人人爽爽 | 激情婷婷在线观看 | 日韩在线播放欧美字幕 | 午夜精品久久久久久久久久 | 欧美成人精品三级在线观看播放 | japanesexxx乱女另类 | 色视频网站在线观看一=区 a视频免费在线观看 | 日批视频 | 激情综合色综合久久综合 | 伊人五月天婷婷 | 激情综合亚洲 | 91麻豆精品国产午夜天堂 | 久久久久久蜜av免费网站 | 免费在线观看av网站 | 色视频网站在线 | 日韩av视屏 | 91视频在线| 日韩精品一区二区三区免费观看 | 91亚洲精 | 超碰个人在线 | 亚洲国产网站 | 亚洲免费专区 | 免费视频久久久久久久 | 最新av网址大全 | 在线免费看黄网站 | 亚洲在线a | 97超碰国产精品 | 五月婷婷播播 | 久久夜色精品国产欧美乱 | 天天干天天操天天射 | 中文字幕第一页在线播放 | 天天爱综合 | av高清在线 | 99久久精品久久久久久动态片 | 精品视频99| 狠狠夜夜 | 狠狠躁日日躁狂躁夜夜躁av | 久久夜色精品国产欧美一区麻豆 | 岛国av在线 | 精品国产激情 | 精品视频97| 国产免费视频一区二区裸体 | 久草视频在线新免费 | 久久精品香蕉 | 最近中文字幕完整高清 | va视频在线观看 | 免费看久久久 | 亚洲精品视频在 | 免费看日韩片 | 国产理论在线 | 日日夜夜中文字幕 | 久久久久久久99精品免费观看 | 久av电影 | 亚洲成人软件 | 久久久久久久久久久免费 | 青草视频在线 | 黄色av播放 | 国产精品久久久久久久久久ktv | 日韩色高清 | 91传媒在线 | 久久色亚洲 | 国产网红在线观看 | 国产中文字幕在线看 | 黄色av一区二区三区 | 99精品视频在线观看免费 | av在线播放快速免费阴 | 午夜久久精品 | 一区二区不卡在线观看 | 久久精品99北条麻妃 | 色综合a| 黄色的网站免费看 | 91mv.cool在线观看 | 国产91欧美 | 91一区一区三区 | 国产精品久久久影视 | 亚洲成av人影院 | 99久久综合狠狠综合久久 | 超碰人人做 | 亚洲久草在线视频 | 欧美无极色| 人人澡人人干 | 最新超碰在线 | 欧美日韩精 | 免费在线国产精品 | 国产又粗又猛又爽又黄的视频先 | 91污在线 | 日韩免费不卡av | 久久福利小视频 | 五月天堂色| 久久视频这里有久久精品视频11 | 欧美成人精品欧美一级乱 | 国产中文字幕三区 | 久久tv| 特级西西人体444是什么意思 | 97香蕉超级碰碰久久免费软件 | 在线视频专区 | 日日夜色| 久久av电影| 婷婷电影在线观看 | 久久情爱| 国产区第一页 | 久久99网站 | 视频一区二区三区视频 | 在线观看理论 | 欧美精品亚洲精品 | 免费看黄色小说的网站 | 欧美电影在线观看 | 91精品对白一区国产伦 | 亚洲天天 | 国产成人精品综合久久久久99 | 亚洲无吗天堂 | 久久久久久久久免费视频 | 一区二区三区四区在线免费观看 | 日韩草比 | 国产亚洲成人网 | 国产成人在线网站 | 免费视频二区 | a级片网站 | 国产亚洲精品综合一区91 | 天堂av观看 | 91精品一| 国产xxxx做受性欧美88 | av色图天堂网 | 久久免费精品视频 | 国产精品都在这里 | 亚洲精品美女在线观看播放 | 91久久国产露脸精品国产闺蜜 | 午夜视频在线观看一区 | 99久久精品视频免费 | 久草免费在线视频观看 | 国产欧美三级 | 热久久最新地址 | 狠狠色丁香婷婷综合久小说久 | 在线观看成人福利 | 色婷婷色 | 亚洲一二三久久 | 精品99在线观看 | 超碰国产在线 | 欧美日本不卡高清 | 欧美午夜精品久久久久久孕妇 | 四川bbb搡bbb爽爽视频 | 成人免费视频网站在线观看 | 日本三级不卡视频 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 久草网在线观看 | 久久成电影 | 国产一级视频免费看 | 亚欧日韩成人h片 | 国产欧美三级 | 国产小视频网站 | 欧美一级片在线播放 | 在线 高清 中文字幕 | 久草视频免费在线播放 | 美女网站色 | 成人久久精品视频 | 操操日 | www在线免费观看 | 伊人久久五月天 | 天天插天天干天天操 | 一区二区三区福利 | 免费日韩三级 | 免费高清在线视频一区· | 一本到视频在线观看 | 久久亚洲专区 | 91精品久久久久久久91蜜桃 | 成人黄色免费观看 | 一级一片免费观看 | 国产中文字幕在线播放 | 黄污视频网站大全 | 在线成人一区 | 麻豆视频免费在线播放 | 在线只有精品 | 成人免费电影 | 粉嫩aⅴ一区二区三区 | 国产成人久久av免费高清密臂 | 欧美日韩中文字幕在线视频 | 亚洲 av网站 | 国产精品久久久久久久久久免费 | 日本一区二区三区视频在线播放 | 中文字幕在线视频精品 | 国产美女视频免费观看的网站 | 久久久久久高潮国产精品视 | 久久久久国产一区二区三区 | 中文字幕免费在线看 | 久久黄色网址 | 欧美激情亚洲综合 | 久草免费在线观看 | 国产精品免费久久久久久 | 超黄视频网站 | 久久久免费观看视频 | 精品欧美一区二区在线观看 | 天天操天天射天天爽 | 日本不卡久久 | 超碰99在线 | 天堂视频一区 | 在线观看国产日韩欧美 | 不卡电影一区二区三区 | 精品国产激情 | 免费久草视频 | 菠萝菠萝在线精品视频 | 国产一二区视频 | 日本一区二区免费在线观看 | 热re99久久精品国产99热 | 中文字幕中文字幕在线一区 | 在线国产高清 | 日韩高清国产精品 | www.91成人| 国产成人福利在线观看 | 成人免费电影 | 片黄色毛片黄色毛片 | 一级久久精品 | 五月婷婷激情 | 亚洲美女免费精品视频在线观看 | 欧美精品成人在线 | 免费av看片 | 九九色综合 | av中文天堂在线 | 久久国产品 | 在线观看国产亚洲 | 超碰人人av | 成人av电影免费观看 | 亚洲精品www| 亚洲在线视频免费 | 五月天,com | 91九色自拍 | 亚洲一区二区天堂 | 欧美久久久久久久久久久 | 在线观看亚洲精品视频 | 日本中文字幕在线视频 | 久久精品亚洲国产 | 五月天久久狠狠 | 天堂va在线高清一区 | 91成人看片| 欧美日韩中文字幕综合视频 | 国产精品麻 | 91丨九色丨国产丨porny精品 | www黄免费 | 亚洲专区中文字幕 | 亚洲一级电影在线观看 | 免费无遮挡动漫网站 | 超碰国产在线播放 | 亚洲午夜久久久综合37日本 | 又黄又刺激视频 | 天天干夜夜爱 | 国产乱码精品一区二区三区介绍 | 九九久久婷婷 | 综合影视 | 综合精品久久久 | 8x成人在线| 97理论片 | 亚洲欧美精品在线 | 亚洲精品国产欧美在线观看 | 青青河边草免费直播 | 久久免费美女视频 | 波多野结衣视频一区 | 另类五月激情 | 国产欧美综合视频 | 成人午夜在线电影 | 免费视频色 | 成人在线免费观看网站 | 国产精品久久久久久久久久免费看 | 亚洲国产精品成人女人久久 | 成人av网站在线播放 | 蜜桃视频日本 | 国产在线观看你懂的 | 久久精品国产久精国产 | 色欧美88888久久久久久影院 | 久久久久久久久久伊人 | 免费a级观看 | 日韩一区视频在线 | 国产亚洲精品久久久久久电影 | 午夜精品久久久久久久久久 | 99久久婷婷国产一区二区三区 | japanese黑人亚洲人4k | 国产做爰视频 | 国产手机av | 成片免费观看视频 | 国产精品不卡在线播放 | 久久久国产精品麻豆 | 国产精品美女久久久久久久 | 午夜久操 | 中文字幕在线日 | 日韩av一区二区三区在线观看 | 日韩视频一区二区在线 | 中文乱幕日产无线码1区 | 国产a视频免费观看 | 精品久久久久国产 | 国产精品女人久久久 | 欧美久久久影院 | 一级免费黄视频 | 欧美一进一出抽搐大尺度视频 | 免费h精品视频在线播放 | 中文字幕一区二区三区精华液 | 色资源网在线观看 | 激情五月在线视频 | 91视频免费视频 | 亚洲精品视频在 | 福利一区视频 | 国产精品久久久久四虎 | 亚av在线| 激情五月亚洲 | 超碰免费公开 | 久久久久久久久久久久久久电影 | 九九久久久 | 麻豆视频大全 | 天天色天天上天天操 | 久久麻豆精品 | 欧美午夜久久久 | 午夜三级毛片 | 欧美色图亚洲图片 | 97超级碰碰| 久久国产精品影视 | 免费在线h | 日韩激情片在线观看 | 久久精品这里精品 | 99精品国产免费久久久久久下载 | 久久狠狠婷婷 | 国产精品美女免费看 | 亚洲欧洲精品久久 | av色图天堂网 | av丝袜在线 | 日韩一级黄色片 | 日韩二区在线播放 | 久久久久久亚洲精品 | 在线观看免费成人av | 激情欧美日韩一区二区 | 美女黄视频免费 | 91九色在线观看视频 | 2023年中文无字幕文字 | 91成年人网站 | 91香蕉嫩草 | 天天干天天拍天天操天天拍 | 国产精品99久久久精品免费观看 | 欧美成人理伦片 | 国产精品九九九 | 天天操天天干天天操天天干 | 欧美国产高清 | 成人av电影在线播放 | 四虎国产精品成人免费4hu | 一二三区高清 | 国产亚洲成av人片在线观看桃 | 久久久久综合精品福利啪啪 | 成人黄色毛片视频 | 中文字幕一区在线观看视频 | 欧美日韩色婷婷 | 欧美一级淫片videoshd | 婷婷激情小说网 | 欧美色一色 | 久久av免费 | 久久久天堂| 天天操天天谢 | 精品国产三级 | 在线观看中文av | 午夜av剧场 | 久久国产精品一区二区三区四区 | 亚洲视频 中文字幕 | 国产无限资源在线观看 | 欧美粗又大 | 五月天综合在线 | 婷婷 中文字幕 | 成人av高清在线观看 | 在线观看av小说 | 久久久免费观看视频 | 欧美极品一区二区三区 | 国产精品免费大片视频 | 亚洲资源在线观看 | 久久玖 | 欧美aⅴ在线观看 | 国产一区免费在线 | 国产拍揄自揄精品视频麻豆 | 亚洲最新毛片 | 激情欧美一区二区三区免费看 | 精品国产一区二区三区不卡 | 久久美女免费视频 | 麻豆视频在线免费观看 | 国产在线观看你懂得 | 青青河边草观看完整版高清 | 欧美日韩在线免费观看 | 久久99亚洲精品久久 | 99视频 | 欧美日韩免费在线观看视频 | 久久久久国产一区二区三区四区 | 成人一级免费视频 | 玖玖玖在线 | 波多野结衣网址 | 91免费看黄 | 国产日产av | 久久激情视频免费观看 | 91精品免费| 五月婷婷中文 | 日日夜夜天天久久 | 国产精品一区二区美女视频免费看 | 精品国产精品久久一区免费式 | 中文字幕免费一区二区 | 日韩欧美视频免费在线观看 | 18久久久久 | 午夜影院日本 | av一区在线播放 | 亚洲撸撸 | 久久三级视频 | 在线观看视频h | 99精品在线免费在线观看 | 日韩网站在线免费观看 | 在线观看精品视频 | 天天干天天草 | 人人爽人人搞 | 国产拍揄自揄精品视频麻豆 | 日韩试看 | 国产又粗又猛又色又黄视频 | 九九热.com| 久久高清免费观看 | 亚洲综合色视频 | 亚洲丁香久久久 | 97人人看 | 超碰97国产| 97免费| 一区二区三区国 | 成人日批视频 | 视频国产一区二区三区 | 蜜桃视频色 | 久久免费看毛片 | 日韩黄色在线电影 | 久久伊人91 | 91中文字幕网 | 欧美激情精品久久 | 91久久国产综合精品女同国语 | 精品在线观看一区二区 | 国产69精品久久99不卡的观看体验 | 国产精品一区二区在线 | 91九色最新 | 欧美久久精品 | 久久黄色影院 | 色射色 | 九九视频在线 | 国产又粗又硬又爽视频 | 丁香六月在线观看 | 亚洲精品视频大全 | 在线观看视频你懂得 | 欧美成人在线免费 | 中文字幕在线日本 | 免费网站在线观看人 | 国产婷婷视频在线 | 久久久精品一区二区三区 | 在线免费亚洲 | 欧美日韩国产综合网 | 这里只有精彩视频 | 日韩精品视频在线观看网址 | 99精品视频免费 | 99久久精品国产亚洲 | 九九精品视频在线看 | 免费av的网站| 亚洲 在线| 91av在线免费视频 | 在线免费观看的av | 色综合欧洲| 日韩a级免费视频 | 成年人免费在线观看 | 久久精品中文视频 | 美女福利视频在线 | av免费在线网 | 日韩资源在线播放 | 国产精品v a免费视频 | 97在线观看免费高清完整版在线观看 | 亚洲欧美日韩精品久久奇米一区 | 国产精品中文字幕在线 | 麻豆综合网 | 999抗病毒口服液 | 国产精品一级在线 | 91成人在线观看高潮 | 国产综合91 | 国产一区私人高清影院 | 亚洲精品视频在线观看网站 | 亚洲国产播放 | 97超碰福利久久精品 | 国产免费观看av | 丁香av在线 | 免费看毛片网站 | 免费久久网 | 国产精品高潮呻吟久久久久 | 亚洲小视频在线观看 | 久久无码av一区二区三区电影网 | 成人黄色在线播放 | 国产黄色免费观看 | 色视频在线观看 | 国产精品99久久久精品免费观看 | 久久曰视频 | 久久久国产精品免费 | 美女视频一区 | 久久在线免费 | 中文字幕av在线播放 | 精品视频亚洲 | 亚洲 综合 精品 | 亚洲女欲精品久久久久久久18 | 91成人免费观看视频 | 欧美日韩一区二区三区视频 | 丝袜美腿在线播放 | 五月婷婷影院 | 免费精品国产 | 97视频在线观看播放 | 日本中文字幕网 | 少妇自拍av | 亚洲成人国产 | 中文日韩在线视频 | 久久久国际精品 | 久久久久国产一区二区 | 久久狠狠婷婷 | 免费观看福利视频 | 91精品国产91久久久久久三级 | 久久久久久久久网站 | 日本精品视频一区 | 国产视频亚洲视频 | 深夜免费小视频 | 人人干97| 国产二区视频在线观看 | 狠狠干电影 | 81国产精品久久久久久久久久 | 色欧美综合 | 久久免费在线观看 | 日韩av黄| 一区二区三区 亚洲 | 欧美成人精品欧美一级乱黄 | 日韩中文字幕在线 | 五月综合色 | 超碰最新网址 | 欧美片网站yy | 免费看国产视频 | 久久综合一本 | 超碰在线资源 | 日韩视频一区二区三区 | 久久精品视频网站 | 韩国精品在线观看 | 深夜国产福利 | 911亚洲精品第一 | 色橹橹欧美在线观看视频高清 | 欧美性受极品xxxx喷水 | 免费男女羞羞的视频网站中文字幕 | 国产一区高清在线 | av免费电影在线观看 | 一区二区三区四区五区在线 | www.国产毛片 | 久久精品—区二区三区 | 999久久久欧美日韩黑人 | 香蕉视频网站在线观看 | 欧美精品久久久久 | 精品在线一区二区 | 在线播放视频一区 | 国产精品第54页 | 日本激情视频中文字幕 | 依人成人综合网 | 欧美日韩高清一区二区三区 | 久久无码av一区二区三区电影网 | 久久少妇| 狠狠色丁香久久婷婷综合五月 | 91麻豆免费视频 | 欧美午夜理伦三级在线观看 | 国产成人精品久久久 | 免费黄色a网站 | 四虎视频 | 美女视频永久黄网站免费观看国产 | 精品一区二区三区在线播放 | 在线亚洲播放 | 91视频链接| 黄色成人免费电影 | 日韩av伦理片 | 国产日韩视频在线 | 欧美另类高潮 | 国产成人精品999 | 日韩欧美一区视频 | 国产午夜精品久久久久久久久久 | 亚洲闷骚少妇在线观看网站 | 一区二区三区在线播放 | 天天色天天骑天天射 | 国产精品久久久久久久久久免费 | 五月亚洲综合 | 69亚洲精品 | 亚洲色图美腿丝袜 | 久久久久综合网 | 久久99最新地址 | 国产精品 美女 | 一级免费黄视频 | 久久在线观看视频 | 日韩一区二区三免费高清在线观看 | 国产91免费在线观看 | 国产精品午夜在线观看 | 国产乱老熟视频网88av | 欧美激情第十页 | 波多野结衣一区二区 | 麻豆超碰 | 国产精品人人做人人爽人人添 | 午夜精品久久久久99热app | 亚洲h色精品 | 久久久国产日韩 | 色婷婷久久久综合中文字幕 | 日韩电影在线一区 | 成人黄色免费在线观看 | 成人毛片一区二区三区 | 人人要人人澡人人爽人人dvd | 五月婷婷丁香在线观看 | 亚洲精品美女久久17c | 不卡精品视频 | 国产日韩欧美视频在线观看 | 日韩专区在线播放 | 五月婷婷伊人网 | 国产精品区一区 | 美女视频免费一区二区 | 六月丁香婷婷在线 | 在线观看中文字幕第一页 | 伊人狠狠| 亚洲精品中文在线资源 | 91麻豆精品国产91久久久更新时间 | 日韩在线中文字幕视频 | 日韩伦理片hd | 蜜臀av性久久久久av蜜臀妖精 | 综合激情网... | 在线视频黄 | 久久综合影院 | 天天操操操操操 | 亚洲国产成人在线播放 | 久久久黄色 | 中文字幕精品三级久久久 | 午夜美女wwww| 亚洲国产免费看 | 国产精品久久久久久久久久久免费看 | 久久成 | 国际精品久久久久 | 欧美在线aa| 久久精品在线 | 精品亚洲一区二区 | 日韩精品在线播放 | 国产色就色 | 免费的黄色的网站 | 一级成人免费 | 亚洲区另类春色综合小说 | 婷婷激情在线观看 | 国产成人一区二区精品非洲 | 国产成人精品一区二 | 一级成人免费视频 | 欧美精品国产综合久久 | 精品国精品自拍自在线 | 国产精品久久久久久久久久久久冷 | 国产精品一区二区av影院萌芽 | 可以免费观看的av片 | 色com| 日韩理论片中文字幕 | 天天天天天操 | 日韩久久一区 | www夜夜| 国产精品自在线拍国产 | 91三级在线观看 | 黄色软件视频网站 | 国产亚洲精品久久久久久网站 | 91成人精品一区在线播放69 | 人人澡人人舔 | 亚洲视屏在线播放 | 国产一区二区三区在线免费观看 | 99c视频高清免费观看 | 日韩在线免费小视频 | 日韩av在线免费看 | 国产精品国产亚洲精品看不卡15 | 在线观看成人 | 国内精品久久久久久久久久清纯 | 日本久久不卡视频 | 免费观看的黄色片 | 久久国精品 | 婷婷国产精品 | 欧美日韩午夜爽爽 | 欧美成人精品三级在线观看播放 | 24小时日本在线www免费的 | 亚洲 欧美日韩 国产 中文 | 色射爱 | 高清视频一区 | 青青草国产精品 | av超碰在线 | 999视频网站 | 亚洲免费视频在线观看 | 欧美日韩在线播放 | 免费久久99精品国产婷婷六月 | 久久伊人热 | 国产成人av电影 | 国产青春久久久国产毛片 | 精品一区电影国产 | 国产精品美女网站 | 成人黄色电影在线观看 | 国产精品男女视频 | 国产精品99久久久久久人免费 | 国产美女视频免费观看的网站 | 最新中文字幕在线播放 | 亚洲四虎在线 | 国产精品人成电影在线观看 | 中文在线免费观看 | 亚洲精品国产综合99久久夜夜嗨 | 亚洲精品久久久久中文字幕m男 | 国产一级视频 | 免费能看的黄色片 | av在线等 | 国产我不卡 | 日韩精品国产一区 | 在线精品观看国产 | 久久综合偷偷噜噜噜色 | 欧美午夜激情网 | 免费黄色网址大全 | 久久69精品 | 色妞色视频一区二区三区四区 | 日韩在线网 | 久久午夜电影网 | 国产在线播放一区 | 国产精品激情 | 欧美日韩在线播放 | 黄色亚洲精品 | 国产成人三级在线播放 | 成人a级黄色片 | 亚洲国内精品在线 | 亚洲国产日韩欧美 | 精品国产观看 | 在线免费观看不卡av | 久草在线观看视频免费 | 男女激情片在线观看 |