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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt基于文本协议的网络应用开发

發布時間:2025/4/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt基于文本协议的网络应用开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1 文本協議的設計與實現
      • 1.1 文本協議設計介紹
      • 1.2 文本協議設計示例
    • 2 從字節流裝配文本協議對象
    • 3 文本協議中的中文處理
    • 4 文本協議的網絡應用

1 文本協議的設計與實現

1.1 文本協議設計介紹

我們首先來看一下TCP應用編程中的問題:

  • 數據接收端無法知道數據的發送方式!

網絡程序設計中的期望:

  • 每次發送一條完整的消息,每次接收一條完整的消息。
  • 即使接收緩沖區中有多條消息,也不會消息粘連。
  • 消息中涵蓋了數據類型和數據長度等信息。

應用層協議設計:

  • 什么是協議?
    • 協議是通信雙方為數據交換而建立的規則、標準和約定的集合。
  • 協議對數據傳輸的作用:
    • 通信雙方根據協議能夠正確收發數據。
    • 通信雙方根據協議能夠解釋數據的意義。

1.2 文本協議設計示例

協議設計示例:

  • 目標:基于TCP設計可用于文本傳輸的協議。
  • 完整消息包含:
    • 數據頭:數據類型(即:數據區用途,固定長度)。
    • 數據長度:數據區長度(固定長度)。
    • 數據區:字符數據(變長區域)。



實現代碼如下:

TextMessage.h:

#ifndef TEXTMESSAGE_H #define TEXTMESSAGE_H#include <QObject>class TextMessage : public QObject {QString m_type;QString m_data;public:TextMessage(QObject* parent = NULL);TextMessage(QString type, QString data, QObject* parent = NULL);QString type();int length();QString data();QString serialize();bool unserialize(QString s); };#endif // TEXTMESSAGE_H

TextMessage.cpp:

#include "TextMessage.h"TextMessage::TextMessage(QObject* parent) : QObject(parent) {m_type = "";m_data = ""; }TextMessage::TextMessage(QString type, QString data, QObject* parent) : QObject(parent) {m_type = type.trimmed();m_type.resize(4, ' ');m_data = data.mid(0, 0xFFFF); }QString TextMessage::type() {return m_type.trimmed(); }int TextMessage::length() {return m_data.length(); }QString TextMessage::data() {return m_data; }QString TextMessage::serialize() {QString len = QString::asprintf("%X", m_data.length());len.resize(4, ' ');return m_type + len + m_data; }bool TextMessage::unserialize(QString s) {bool ret = (s.length() >= 8);if( ret ){QString type = s.mid(0, 4);QString len = s.mid(4, 4).trimmed();int l = len.toInt(&ret, 16);ret = ret && (l == (s.length() - 8));if( ret ){m_type = type;m_data = s.mid(8, l);}}return ret; }

main.cpp:

#include <QCoreApplication> #include <QDebug> #include "TextMessage.h"int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);TextMessage tm("AB", "1234567890");QString s = tm.serialize();qDebug() << s;TextMessage tmt;tmt.unserialize(s);qDebug() << tmt.type();qDebug() << tmt.length();qDebug() << tmt.data();return a.exec(); }

2 從字節流裝配文本協議對象

問題:

  • 如何將緩沖區中的數據裝配成為協議對象?

深度思考:數據是否能夠裝配成協議對象?

  • 數據量足夠:
    • 如果數據量足夠,是否能夠裝配不止一個對象?
    • 如何處理剩余數據(屬于下一個協議對象)?
  • 數據量不足:
    • 是否達到協議最小長度(8字節)?
    • 如何處理數據量超過最小長度,但不足以產生一個對象的情況?

初步的解決方案:

  • 定義一個類用于接收字節流并裝配協議對象。
  • 類中提供容器(隊列)暫存字節流。
  • 當容器中至少存在8個字節時開始狀態:
  • 首先裝配協議中的類型(type)和數據區長度(length)。
  • 根據數據區長度從容易中取數據裝配協議數據(data)。
  • 當協議數據裝配完成時,創建協議對象并返回,否則,返回NULL。

協議對象裝配類的初步設計:

assemble()函數的實現流程:

assemble()函數的注意事項:

  • 以m_type作為標志決定是否解析類型和長度。
  • m_length是接收后續數據的基礎。
  • 當m_data的長度與m_length相同時創建協議對象。
  • 否則,返回NULL。

makeTypeAndLength()實現要點:

makeMessage()實現要點:

代碼實現如下:
TxtMsgAssembler.h:

#ifndef TXTMSGASSEMBLER_H #define TXTMSGASSEMBLER_H#include <QObject> #include <QQueue> #include <QSharedPointer> #include "TextMessage.h"class TxtMsgAssembler : public QObject {QQueue<char> m_queue;QString m_type;int m_length;QString m_data;void clear();QString fetch(int n);bool makeTypeAndLength();TextMessage* makeMessage(); public:TxtMsgAssembler(QObject* parent = NULL);void prepare(const char* data, int len);QSharedPointer<TextMessage> assemble(const char* data, int len);QSharedPointer<TextMessage> assemble();void reset(); };#endif // TXTMSGASSEMBLER_H

TxtMsgAssembler.cpp:

#include "TxtMsgAssembler.h"TxtMsgAssembler::TxtMsgAssembler(QObject* parent) : QObject(parent) {}void TxtMsgAssembler::clear() {m_type = "";m_length = 0;m_data = ""; }QString TxtMsgAssembler::fetch(int n) {QString ret = "";for(int i=0; i<n; i++){ret += m_queue.dequeue();}return ret; }void TxtMsgAssembler::prepare(const char* data, int len) {if( data != NULL ){for(int i=0; i<len; i++){m_queue.enqueue(data[i]);}} }QSharedPointer<TextMessage> TxtMsgAssembler::assemble() {TextMessage* ret = NULL;bool tryMakeMsg = false;if( m_type == "" ){tryMakeMsg = makeTypeAndLength();}else{tryMakeMsg = true;}if( tryMakeMsg ){ret = makeMessage();}if( ret != NULL ){clear();}return QSharedPointer<TextMessage>(ret); }QSharedPointer<TextMessage> TxtMsgAssembler::assemble(const char* data, int len) {prepare(data, len);return assemble(); }bool TxtMsgAssembler::makeTypeAndLength() {bool ret = (m_queue.length() >= 8);if( ret ){QString len = "";m_type = fetch(4);len = fetch(4);m_length = len.trimmed().toInt(&ret, 16);if( !ret ){clear();}}return ret; }TextMessage* TxtMsgAssembler::makeMessage() {TextMessage* ret = NULL;if( m_type != "" ){int needed = m_length - m_data.length();int n = (needed <= m_queue.length()) ? needed : m_queue.length();m_data += fetch(n);if( m_length == m_data.length() ){ret = new TextMessage(m_type, m_data);}}return ret; }void TxtMsgAssembler::reset() {clear();m_queue.clear(); }

main.cpp:

#include <QCoreApplication> #include <QDebug> #include "TextMessage.h" #include "TxtMsgAssembler.h"int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);TextMessage tm("AB", "1234567890");QString s = tm.serialize();qDebug() << s;TxtMsgAssembler as;QSharedPointer<TextMessage> pt;pt = as.assemble(s.toStdString().c_str(), s.length());if( pt != NULL ){qDebug() << "assemble successfully";qDebug() << pt->type();qDebug() << pt->length();qDebug() << pt->data();}return a.exec(); }

總結一下:

  • 從連續字節流裝配協議對象是應用自定義協議的基礎。
  • 裝配類(TxtMsgAssembler)用于解析自定義協議。
  • 裝配類的實現的關鍵是如何處理字節數據不夠的情況。
  • 自定義協議類和裝配類能夠有效解決數據粘連問題。

3 文本協議中的中文處理

問題:

  • 文本協議的設計與實現能夠支持中文嗎?

回顧協議設計:

我們看一下下面的代碼會有相同的輸出嗎?

第一種方式正常輸出,第二種方式則不行。

深度分析:

  • 文本協議的實現只考慮了ASCII碼的情況,對于中文類型的寬字符編碼情況并未考慮(寬字符>=2字符)。

協議設計的微小改動:

  • Type:4個ASCII字符。
  • Length:4個ASCII字符(存儲數據區字節數)。
  • 數據區:使用UTF-8方式進行編碼。

編碼小知識:

  • ASCII:
    • 最早的統一編碼標準,規定了128個字符編碼(0-127)。
  • Unicode
    • 一個很大的字符集,規定了字符的二進制代碼(編碼標準)。
  • UTF-8
    • 使用最廣泛的一種Unicode編碼標準的實現。

UTF-8編碼的特點:

UTF-8編碼示例:

協議實現的改動:

首先看一下相對上面的代碼都做了什么修改:




4 文本協議的網絡應用

將TextMessage對象作為網絡傳輸的基本單位:

架構設計:

實現概要:

  • 客戶端提供發送TextMessage對象的成員函數。
  • 客戶端和服務端均內置TxtMsgAssembler對象:
    • 用于從網絡字節流裝配TextMessage對象。
  • 當成功收到TextMessage對象:
    • 使用TxtMsgHandler接口進行異步通知。

為了使得服務端可以正確接收多個客戶端的TextMessage消息,我們需要為每一個與客戶端通信的TcpSocket對象分配一個專用的裝配對象:

簡單看一下Qt中的QMap容器:

  • QMap是一種基于鍵值對(Key-Value)的字典數據結構。
  • QMap是通過模板定義的,鍵和值都可以是自定義數據類型。
  • QMap使用示例:

解決方案如下:

  • 客戶端連接時,動態創建裝配對象,插入字典中。
  • 網絡字節流達到時,在字典中查找裝配對象。
  • 通過查找到的裝配對象處理字節流。
  • 客戶端斷開時,銷毀對應的裝配對象。

代碼組織結構如下:

TxtMsgHandler.h:

#ifndef TXTMSGHANDLER_H #define TXTMSGHANDLER_H#include <QTcpSocket> #include "TextMessage.h"class TxtMsgHandler { public:virtual void handle(QTcpSocket&, TextMessage&) = 0; };#endif // TXTMSGHANDLER_H

TextMessage.h:

#ifndef TEXTMESSAGE_H #define TEXTMESSAGE_H#include <QObject> #include <QByteArray>class TextMessage : public QObject {QString m_type;QString m_data;public:TextMessage(QObject* parent = NULL);TextMessage(QString type, QString data, QObject* parent = NULL);QString type();int length();QString data();QByteArray serialize();bool unserialize(QByteArray ba); };#endif // TEXTMESSAGE_H

TextMessage.cpp:

#include "TextMessage.h"TextMessage::TextMessage(QObject* parent) : QObject(parent) {m_type = "";m_data = ""; }TextMessage::TextMessage(QString type, QString data, QObject* parent) : QObject(parent) {m_type = type.trimmed();m_type.resize(4, ' ');m_data = data.mid(0, 15000); }QString TextMessage::type() {return m_type.trimmed(); }int TextMessage::length() {return m_data.length(); }QString TextMessage::data() {return m_data; }QByteArray TextMessage::serialize() {QByteArray ret;QByteArray dba = m_data.toUtf8();QString len = QString::asprintf("%X", dba.length());len.resize(4, ' ');ret.append(m_type.toStdString().c_str(), 4);ret.append(len.toStdString().c_str(), 4);ret.append(dba);return ret; }bool TextMessage::unserialize(QByteArray ba) {bool ret = (ba.length() >= 8);if( ret ){QString type = QString(ba.mid(0, 4));QString len = QString(ba.mid(4, 4)).trimmed();int l = len.toInt(&ret, 16);ret = ret && (l == (ba.length() - 8));if( ret ){m_type = type;m_data = QString(ba.mid(8));}}return ret; }

TxtMsgAssembler.h:

#ifndef TXTMSGASSEMBLER_H #define TXTMSGASSEMBLER_H#include <QObject> #include <QQueue> #include <QSharedPointer> #include "TextMessage.h"class TxtMsgAssembler : public QObject {QQueue<char> m_queue;QString m_type;int m_length;QByteArray m_data;void clear();QByteArray fetch(int n);bool makeTypeAndLength();TextMessage* makeMessage(); public:TxtMsgAssembler(QObject* parent = NULL);void prepare(const char* data, int len);QSharedPointer<TextMessage> assemble(const char* data, int len);QSharedPointer<TextMessage> assemble();void reset(); };#endif // TXTMSGASSEMBLER_H

TxtMsgAssembler.cpp:

#include "TxtMsgAssembler.h"TxtMsgAssembler::TxtMsgAssembler(QObject* parent) : QObject(parent) {}void TxtMsgAssembler::clear() {m_type = "";m_length = 0;m_data.clear(); }QByteArray TxtMsgAssembler::fetch(int n) {QByteArray ret;for(int i=0; i<n; i++){ret.append(m_queue.dequeue());}return ret; }void TxtMsgAssembler::prepare(const char* data, int len) {if( data != NULL ){for(int i=0; i<len; i++){m_queue.enqueue(data[i]);}} }QSharedPointer<TextMessage> TxtMsgAssembler::assemble() {TextMessage* ret = NULL;bool tryMakeMsg = false;if( m_type == "" ){tryMakeMsg = makeTypeAndLength();}else{tryMakeMsg = true;}if( tryMakeMsg ){ret = makeMessage();}if( ret != NULL ){clear();}return QSharedPointer<TextMessage>(ret); }QSharedPointer<TextMessage> TxtMsgAssembler::assemble(const char* data, int len) {prepare(data, len);return assemble(); }bool TxtMsgAssembler::makeTypeAndLength() {bool ret = (m_queue.length() >= 8);if( ret ){QString len = "";m_type = QString(fetch(4));len = QString(fetch(4));m_length = len.trimmed().toInt(&ret, 16);if( !ret ){clear();}}return ret; }TextMessage* TxtMsgAssembler::makeMessage() {TextMessage* ret = NULL;if( m_type != "" ){int needed = m_length - m_data.length();int n = (needed <= m_queue.length()) ? needed : m_queue.length();m_data.append(fetch(n));if( m_length == m_data.length() ){ret = new TextMessage(m_type, QString(m_data));}}return ret; }void TxtMsgAssembler::reset() {clear();m_queue.clear(); }

ClientDemo.h:

#ifndef CLIENTDEMO_H #define CLIENTDEMO_H#include <QObject> #include <QTcpSocket> #include "TextMessage.h" #include "TxtMsgAssembler.h" #include "TxtMsgHandler.h"class ClientDemo : public QObject {Q_OBJECTQTcpSocket m_client;TxtMsgAssembler m_assembler;TxtMsgHandler* m_handler; protected slots:void onConnected();void onDisconnected();void onDataReady();void onBytesWritten(qint64 bytes);public:ClientDemo(QObject* parent = NULL);bool connectTo(QString ip, int port);qint64 send(TextMessage& message);qint64 available();void setHandler(TxtMsgHandler* handler);void close(); };#endif // CLIENTDEMO_H

ClientDemo.cpp:

#include "ClientDemo.h" #include <QHostAddress> #include <QDebug>ClientDemo::ClientDemo(QObject* parent) : QObject(parent), m_handler(NULL) {connect(&m_client, SIGNAL(connected()), this, SLOT(onConnected()));connect(&m_client, SIGNAL(disconnected()), this, SLOT(onDisconnected()));connect(&m_client, SIGNAL(readyRead()), this, SLOT(onDataReady()));connect(&m_client, SIGNAL(bytesWritten(qint64)), this, SLOT(onBytesWritten(qint64))); }void ClientDemo::onConnected() {}void ClientDemo::onDisconnected() {m_assembler.reset(); }void ClientDemo::onDataReady() {char buf[256] = {0};int len = 0;while( (len = m_client.read(buf, sizeof(buf))) > 0 ){QSharedPointer<TextMessage> ptm = m_assembler.assemble(buf, len);if( (ptm != NULL) && (m_handler != NULL) ){m_handler->handle(m_client, *ptm);}} }void ClientDemo::onBytesWritten(qint64 bytes) {(void)bytes; }bool ClientDemo::connectTo(QString ip, int port) {m_client.connectToHost(ip, port);return m_client.waitForConnected(); }qint64 ClientDemo::send(TextMessage& message) {QByteArray ba = message.serialize();return m_client.write(ba.data(), ba.length()); }qint64 ClientDemo::available() {return m_client.bytesAvailable(); }void ClientDemo::close() {m_client.close(); }void ClientDemo::setHandler(TxtMsgHandler* handler) {m_handler = handler; }

ServerDemo.h:

#ifndef SERVERDEMO_H #define SERVERDEMO_H#include <QObject> #include <QTcpServer> #include <QMap> #include "TextMessage.h" #include "TxtMsgAssembler.h" #include "TxtMsgHandler.h"class ServerDemo : public QObject {Q_OBJECTQTcpServer m_server;QMap<QTcpSocket*, TxtMsgAssembler*> m_map;TxtMsgHandler* m_handler; public:ServerDemo(QObject* parent = NULL);bool start(int port);void stop();void setHandler(TxtMsgHandler* handler);~ServerDemo();protected slots:void onNewConnection();void onConnected();void onDisconnected();void onDataReady();void onBytesWritten(qint64 bytes); };#endif // SERVERDEMO_H

ServerDemo.cpp:

#include "ServerDemo.h" #include <QHostAddress> #include <QTcpSocket> #include <QObjectList> #include <QDebug>ServerDemo::ServerDemo(QObject* parent) : QObject(parent), m_handler(NULL) {connect(&m_server, SIGNAL(newConnection()), this, SLOT(onNewConnection())); }void ServerDemo::onNewConnection() {QTcpSocket* tcp = m_server.nextPendingConnection();TxtMsgAssembler* assembler = new TxtMsgAssembler();m_map.insert(tcp, assembler);connect(tcp, SIGNAL(connected()), this, SLOT(onConnected()));connect(tcp, SIGNAL(disconnected()), this, SLOT(onDisconnected()));connect(tcp, SIGNAL(readyRead()), this, SLOT(onDataReady()));connect(tcp, SIGNAL(bytesWritten(qint64)), this, SLOT(onBytesWritten(qint64))); }void ServerDemo::onConnected() {}void ServerDemo::onDisconnected() {QTcpSocket* tcp = dynamic_cast<QTcpSocket*>(sender());if( tcp != NULL ){delete m_map.take(tcp);} }void ServerDemo::onDataReady() {QTcpSocket* tcp = dynamic_cast<QTcpSocket*>(sender());char buf[256] = {0};int len = 0;if( tcp != NULL ){TxtMsgAssembler* assembler = m_map.value(tcp);while( (len = tcp->read(buf, sizeof(buf))) > 0 ){QSharedPointer<TextMessage> ptm = (assembler != NULL) ? assembler->assemble(buf, len) : NULL;if( (ptm != NULL) && (m_handler != NULL) ){m_handler->handle(*tcp, *ptm);}}} }void ServerDemo::onBytesWritten(qint64 bytes) {(void)bytes; }bool ServerDemo::start(int port) {bool ret = true;if( !m_server.isListening() ){ret = m_server.listen(QHostAddress("127.0.0.1"), port);}return ret; }void ServerDemo::stop() {if( m_server.isListening() ){m_server.close();} }ServerDemo::~ServerDemo() {const QObjectList& list = m_server.children();for(int i=0; i<list.length(); i++){QTcpSocket* tcp = dynamic_cast<QTcpSocket*>(list[i]);if( tcp != NULL ){tcp->close();}}const QList<TxtMsgAssembler*>& al = m_map.values();for(int i=0; i<al.length(); i++){delete al.at(i);} }void ServerDemo::setHandler(TxtMsgHandler* handler) {m_handler = handler; }

main.cpp:

#include <QCoreApplication> #include <QDebug> #include "TextMessage.h" #include "TxtMsgAssembler.h" #include "TxtMsgHandler.h" #include "ClientDemo.h" #include "ServerDemo.h"class Handler : public TxtMsgHandler { public:void handle(QTcpSocket& socket, TextMessage& message){qDebug() << &socket;qDebug() << message.type();qDebug() << message.length();qDebug() << message.data();} };int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);TextMessage message("Demo", "Delphi Tang 狄泰軟件學院!");Handler handler;ServerDemo server;ClientDemo client;server.setHandler(&handler);server.start(8890);client.setHandler(&handler);client.connectTo("127.0.0.1", 8890);client.send(message);return a.exec(); }

參考資料:

  • QT實驗分析教程
  • 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的Qt基于文本协议的网络应用开发的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    黄色成人小视频 | 久久精品综合一区 | 亚洲激情精品 | 涩涩在线 | 久久美女精品 | 日本少妇视频 | 久久久久久网址 | 亚洲成人精品久久 | 美女免费视频网站 | 懂色av一区二区三区蜜臀 | 欧美性视频网站 | 人人舔人人插 | 婷婷丁香av | 日韩一三区 | 久久精品久久国产 | 国产成人精品一区二区三区免费 | 久久久久久久久久免费 | 欧美日韩免费视频 | 亚洲精品一区二区三区高潮 | 亚洲欧美日韩在线一区二区 | 欧美激情片在线观看 | 中文字幕亚洲情99在线 | 天天干天天操天天入 | 97在线免费视频 | 久久成人午夜视频 | 日韩亚洲精品电影 | 一二三四精品 | 丁香5月婷婷久久 | 一区二区视频在线观看免费 | 午夜国产福利在线 | 国内综合精品午夜久久资源 | 最新中文字幕在线播放 | 中文字幕资源网 | 麻豆视频国产精品 | 国产精品久久婷婷六月丁香 | 99精品国产免费久久久久久下载 | 国产第一二区 | 亚洲码国产日韩欧美高潮在线播放 | 欧美综合在线视频 | 午夜久久精品 | 日韩精品视频在线免费观看 | 国内精品久久影院 | 手机成人免费视频 | 日韩视频一区二区在线 | 在线观看深夜视频 | 久久一二区| 一色屋精品视频在线观看 | 色综合久久综合网 | 91在线播放国产 | 草久在线播放 | 中文字幕 国产精品 | 欧美一级xxxx | 91精品国产91久久久久 | 欧美成人aa | 一级黄色网址 | 国产1区2区3区精品美女 | 日本一区二区三区免费看 | 在线国产能看的 | 国产美女主播精品一区二区三区 | 久久久国产精品视频 | 91禁看片| 亚洲精品一区二区在线观看 | 黄污网站在线 | 九草视频在线观看 | 亚洲视频一区二区三区在线观看 | 亚洲精品免费在线 | 99精品视频在线观看播放 | 国产午夜精品一区二区三区在线观看 | 亚洲欧美日韩国产精品一区午夜 | 天天艹日日干 | 丁香六月中文字幕 | 美女黄频网站 | 日韩精品久久久久久久电影99爱 | 国产成人福利片 | 在线观看视频一区二区三区 | 亚洲日韩中文字幕 | 在线观看黄色av | 国产黄色免费电影 | 蜜臀av网址| 在线免费观看国产精品 | 日韩精品视频在线观看网址 | 99国产精品一区二区 | 玖玖在线观看视频 | 久久久久久久久久久久av | 99久久婷婷国产一区二区三区 | 天天舔夜夜操 | 色婷婷一区 | 成人免费视频网站 | 免费a网 | 奇人奇案qvod | 国产高清视频 | 在线观看的av | 成人国产精品久久久春色 | 国产麻豆电影在线观看 | 日韩美女久久 | 久久97久久 | 欧美a在线免费观看 | h视频在线看 | 久久精品亚洲精品国产欧美 | 特级毛片网 | 色天天| 日韩三级av | 3d黄动漫免费看 | av成年人电影 | 久久国产视频网站 | 黄色特一级片 | 日操操| 成人精品电影 | 色噜噜日韩精品欧美一区二区 | 91免费版在线观看 | 天天插天天 | 精品国模一区二区 | 久久久久久久久久久影院 | 中文免费观看 | 国产资源网 | 久久av免费观看 | 欧美日韩一区二区三区在线观看视频 | 免费欧美精品 | 久草精品在线观看 | 国产一区二区不卡视频 | 精品一区二区三区在线播放 | 久久超碰网| 深爱激情站 | 亚州国产视频 | 99久久久| 丁香婷婷综合激情 | 成年人免费看片网站 | 午夜av影院| 亚洲一级电影在线观看 | 最近中文字幕在线中文高清版 | 久久精品观看 | 成人在线播放网站 | 婷婷伊人五月 | 正在播放国产一区二区 | 五月天.com | 精品超碰 | 亚洲欧美在线视频免费 | 一本一本久久a久久精品牛牛影视 | 在线观看日本高清mv视频 | 日韩欧美一区二区在线播放 | 欧美一级小视频 | 欧美日韩国产精品久久 | 久久久久激情视频 | 夜又临在线观看 | 免费福利在线播放 | 久久久精品在线观看 | 韩国视频一区二区三区 | 97视频免费在线 | 国内精品久久久久影院日本资源 | 国产亚洲精品久久久久久电影 | 涩涩网站在线看 | 亚洲精品在线免费播放 | 亚洲国产成人久久综合 | 成人97人人超碰人人99 | 欧美专区日韩专区 | 人人爽人人澡 | 91麻豆视频网站 | 日日干天天干 | 午夜精品久久久久久久久久 | 国产99久久久国产精品免费二区 | 免费在线黄色av | 色网免费观看 | 久久99精品国产麻豆宅宅 | 9999免费视频 | 最新国产精品拍自在线播放 | 午夜久久视频 | 亚洲精品videossex少妇 | 97免费公开视频 | 狠狠网| 久久躁日日躁aaaaxxxx | 久久久www成人免费毛片麻豆 | 日韩性片 | 久久精品2| 99热在线免费观看 | 成人在线观看免费 | 国产精品久久久久久电影 | www.伊人网.com| 青草草在线 | 国产原创91| 黄色成年网站 | 丁香六月欧美 | 狠狠操电影网 | 99热精品国产 | 91网页版在线观看 | 激情综合色综合久久 | 顶级bbw搡bbbb搡bbbb | 国产在线色视频 | 婷婷六月丁香激情 | 久久久久99精品成人片三人毛片 | 久久国产精品二国产精品中国洋人 | 懂色av懂色av粉嫩av分享吧 | 不卡av在线播放 | 97av视频 | 97在线观看视频免费 | 久久伦理电影网 | 精品久久久免费视频 | 亚洲第一区在线观看 | 久久国产午夜精品理论片最新版本 | 国产在线精品播放 | 麻豆小视频在线观看 | 最新精品国产 | 亚洲天天综合网 | 免费观看一区二区三区视频 | 91免费网| 国产高清视频在线播放 | 高清免费在线视频 | 美女网站在线免费观看 | 国产五月色婷婷六月丁香视频 | 在线观看视频亚洲 | 久久久久久久久影院 | 久久综合免费视频影院 | 日韩亚洲国产精品 | 色妞色视频一区二区三区四区 | 91视频观看免费 | 欧美成人按摩 | 国产护士av | 97视频入口免费观看 | 国产日韩视频在线观看 | 日韩女同一区二区三区在线观看 | 日韩午夜视频在线观看 | 亚洲国产日韩在线 | 不卡视频国产 | 在线免费观看视频一区 | av3级在线 | 在线免费观看视频你懂的 | 在线观看视频97 | 国产精品久久久久久久久久久久午 | 亚洲涩涩涩涩涩涩 | 色婷婷久久一区二区 | 免费亚洲成人 | 在线观看中文字幕 | 日韩高清免费在线观看 | 夜夜夜| 日韩av电影中文字幕在线观看 | 久久人人爽人人人人片 | 国产精品乱码一区二三区 | 少妇视频一区 | av电影中文字幕在线观看 | 免费黄色网址网站 | 久青草电影 | 久久久国产精品成人免费 | 久草在线 | 国内精品久久久精品电影院 | 手机成人免费视频 | 一本一本久久a久久精品综合妖精 | 在线观看免费av片 | 欧美极品久久 | 夜夜躁日日躁 | 色综合久久中文综合久久牛 | 欧美淫aaa免费观看 日韩激情免费视频 | 精品国产免费久久 | 粉嫩aⅴ一区二区三区 | 久久国产高清 | 丁香婷婷激情国产高清秒播 | 国产资源网站 | 婷婷精品国产一区二区三区日韩 | 国产在线观看h | 国产电影黄色av | 色吊丝在线永久观看最新版本 | 国产成人在线看 | 日韩黄色一级电影 | 日韩av片在线 | 亚洲电影毛片 | 精品久久久久一区二区国产 | 国产91粉嫩白浆在线观看 | 国产成人精品一区二区在线 | 91最新在线视频 | 免费影视大全推荐 | 久热只有精品 | 久久免费精品国产 | 天天操天天射天天操 | 亚洲视屏在线播放 | 久久久久亚洲国产 | 综合久久五月天 | 高清国产一区 | 中文字幕一区二区三区乱码不卡 | 久久国内精品99久久6app | 综合在线亚洲 | 久久久福利影院 | 亚洲精品视频在线观看免费视频 | 在线观看视频你懂 | 中文字幕精品www乱入免费视频 | 婷五月激情| 色综合亚洲精品激情狠狠 | 国产精品久久久久久久久久久免费看 | 亚洲区视频在线观看 | 在线观看免费版高清版 | 国产精品综合在线观看 | 国产91对白在线 | 国产99精品在线观看 | 欧美日产在线观看 | 久久久久国产精品免费免费搜索 | 美女网站久久 | a天堂最新版中文在线地址 久久99久久精品国产 | 亚洲黄色影院 | 婷婷网站天天婷婷网站 | 97香蕉视频 | 麻豆影视在线观看 | 久久美女高清视频 | 国产在线久草 | 日本性xxxxx 亚洲精品午夜久久久 | 成人在线观看影院 | 日韩精品免费一区二区三区 | 热热热热热色 | 91精品在线看 | 中文字幕av播放 | 国产乱对白刺激视频在线观看女王 | 国产精品高清免费在线观看 | 天天操天| 91日韩免费 | 激情动态 | 91九色国产 | 精品久久一区二区三区 | 99精品国产一区二区三区麻豆 | 国产96在线观看 | 国产特级毛片aaaaaa毛片 | 伊人影院在线观看 | 91亚洲精品乱码久久久久久蜜桃 | 国产伦精品一区二区三区四区视频 | 99热超碰在线| 日本一区二区三区免费观看 | 夜夜夜草 | 在线观看视频福利 | 香蕉视频日本 | 最近中文字幕高清字幕在线视频 | 国产精品日韩在线 | 免费在线观看黄 | 精品久久久久久亚洲综合网站 | 免费观看成年人视频 | 亚洲乱码精品久久久久 | 成人中文字幕+乱码+中文字幕 | 国产色综合天天综合网 | 免费视频久久 | 久久激情片 | 欧美激情综合网 | 99精品视频在线观看播放 | 91精品国产91久久久久久三级 | 日韩免费电影一区二区三区 | a在线免费观看视频 | 国产精品成人自拍 | 在线观看韩国av | 欧美久久久久久久久 | 国产精品久久久久久久久搜平片 | 国产精品久久久一区二区 | 欧美日韩成人 | 国产在线观看你懂得 | av日韩av | 欧美在线一| 中文在线字幕免费观看 | 亚洲国产av精品毛片鲁大师 | 亚欧日韩成人h片 | 五月激情六月丁香 | 久久艹综合 | 日韩视频一区二区三区在线播放免费观看 | 日批视频在线观看免费 | 国产在线精品观看 | 色av网站 | 在线小视频 | 国产视频网站在线观看 | 国产蜜臀av| 99性视频| 91视频免费看网站 | 欧美精品乱码久久久久久按摩 | 国内成人精品视频 | 日韩色综合网 | 九九视频热 | 在线播放你懂 | 少妇18xxxx性xxxx片 | 国产中文字幕大全 | 国产午夜一级毛片 | 久久黄色片 | 在线直播av | 五月婷婷av在线 | 久久久国产影视 | 精品日韩在线 | 三级av网站| 日韩理论在线 | 亚州av免费 | 999久久久久| 日韩二区三区在线观看 | 国产a免费 | 黄a网站 | 亚洲精品午夜久久久久久久 | 国产专区欧美专区 | wwwwww国产| www.夜夜草| 激情欧美xxxx | 欧美日韩另类视频 | 亚洲丝袜一区 | 二区在线播放 | 国产中文字幕视频在线观看 | 美女黄视频免费看 | 国产精品岛国久久久久久久久红粉 | 久草视频免费播放 | 婷婷丁香av | 国产精品理论片在线播放 | 国产精品欧美久久久久三级 | 一区二区影院 | 日精品在线观看 | 乱男乱女www7788 | 亚洲视频网站在线观看 | 国产不卡免费 | 狠狠操在线 | 久久精品免费播放 | 久久久国产成人 | 国产精品porn | 黄色特一级片 | 亚洲精品视频二区 | 久久综合操 | 久久综合中文字幕 | 色资源在线观看 | www欧美xxxx| 久久伊人国产精品 | 一二三区av | 精品一区二区免费 | 色婷婷av在线 | 黄在线 | 久久看片 | 一区二区三区高清不卡 | 久久都是精品 | 免费在线观看成人 | 欧美性色综合网 | 欧美夫妻生活视频 | av免费在线看网站 | 日韩av片无码一区二区不卡电影 | 最新日韩在线 | 久要激情网| 日韩中文幕 | 亚洲精品自拍视频在线观看 | 伊人五月婷 | 欧美日韩视频 | 999久久a精品合区久久久 | 日韩免费观看一区二区三区 | 亚洲码国产日韩欧美高潮在线播放 | 在线免费观看麻豆 | 欧美成人区 | 亚洲精品视频大全 | 91精品第一页 | 欧美激情视频一二区 | 中文字幕乱在线伦视频中文字幕乱码在线 | 日韩欧美国产激情在线播放 | 久久久国产精品一区二区中文 | 亚洲国产高清在线观看视频 | 四虎在线永久免费观看 | 在线免费国产视频 | 最新高清无码专区 | 麻豆一区二区三区视频 | 麻豆影音先锋 | 91精品在线播放 | 精品久久久久久国产 | 天天操天天操天天操天天操天天操 | 精品99在线视频 | 欧美一级片在线免费观看 | 黄色成人av在线 | 毛片久久久| 99麻豆久久久国产精品免费 | 夜夜躁天天躁很躁波 | 日本黄色免费观看 | 波多野结衣在线视频一区 | 日日夜夜天天综合 | 国产精品3区 | 91免费试看| 99精品电影| 欧美一区二区日韩一区二区 | 高清久久久久久 | 中文乱幕日产无线码1区 | 不卡精品视频 | 欧美极品xxxxx | 亚洲激情六月 | 六月丁香六月婷婷 | 成人在线观看av | 欧美日韩中 | 久久精品国产免费观看 | 精品国产一区二区三区四 | av电影一区 | 人人天天夜夜 | 中文字幕资源网 国产 | 欧美日韩精品免费观看视频 | 香蕉久久久久久av成人 | 亚洲精品小视频 | 天天亚洲综合 | 88av色| 久久久久福利视频 | 久久久999精品视频 国产美女免费观看 | 99久久99视频 | 国产精品不卡在线播放 | 国产亚洲视频在线观看 | 国产高清不卡在线 | 香蕉视频在线播放 | 中文字幕一区二区三区久久 | 91视频麻豆视频 | 国产精品成人久久久 | 久久艹中文字幕 | 日韩免费成人 | 国产综合福利在线 | 国产三级国产精品国产专区50 | www天天干com | 国产精品中文字幕av | 91污在线观看 | 国产精品国产三级国产不产一地 | 亚洲视频一区二区三区在线观看 | 天堂av在线7 | 九九久久久 | 99免费在线视频观看 | 午夜久久久久久久 | 国产精品美女视频 | 久久综合影音 | 亚洲成人精品影院 | 胖bbbb搡bbbb擦bbbb| 九七视频在线观看 | 天天爱天天干天天爽 | 99热播精品 | 免费看色网站 | 天天插日日操 | 91系列在线| 69夜色精品国产69乱 | 亚洲成av片人久久久 | 色婷婷精品大在线视频 | 日韩最新在线 | 91精品免费在线观看 | 天堂av免费 | 国产中文字幕在线视频 | av超碰在线观看 | 国产一级免费观看 | 91av蜜桃 | 在线播放国产一区二区三区 | 日韩精品一区二区免费视频 | 欧美极品少妇xbxb性爽爽视频 | 日韩高清一区 | 亚洲国内精品 | 色网站在线看 | 久久黄网站 | 500部大龄熟乱视频使用方法 | av电影 一区二区 | 另类五月激情 | 亚洲免费精品视频 | 日韩中文字幕免费 | 午夜精品剧场 | 在线看片一区 | 国产一级视屏 | 成人免费视频视频在线观看 免费 | 久久久高清一区二区三区 | 欧美一级电影在线观看 | 69国产成人综合久久精品欧美 | 97看片网| 亚州性色 | 国内精品久久久久影院优 | 福利视频精品 | adc在线观看 | 日韩免费一区二区 | 久久久久99精品国产片 | www.超碰97.com | 久久国产精品久久国产精品 | 深爱婷婷| 91精品入口 | 97免费在线视频 | 夜夜爽夜夜操 | 亚洲伊人婷婷 | 亚洲精品乱码久久久久v最新版 | 天天干夜夜擦 | 婷婷丁香久久五月婷婷 | 999久久国产精品免费观看网站 | 中文字幕高清在线 | 午夜久久福利视频 | 成人久久18免费网站图片 | 在线观看一区视频 | 国产福利专区 | 欧美色操 | 九七视频在线观看 | 久久亚洲日本 | 亚州av网站大全 | 在线观看一级 | 丝袜美女在线 | 午夜av在线免费 | 456成人精品影院 | 日韩欧美视频一区二区 | 日韩精品一区电影 | 在线观看日本高清mv视频 | 日本在线免费看 | 五月婷婷六月丁香在线观看 | 国产成人三级在线观看 | 97在线公开视频 | 国产我不卡 | 久操视频在线 | 精品国产人成亚洲区 | 在线观看久久 | 亚洲精品自拍视频在线观看 | 国产精品久久久电影 | 1024手机看片国产 | 狠狠狠色丁香综合久久天下网 | 99精品视频在线观看视频 | 狠色狠色综合久久 | 久久一视频 | 中文字幕在线第一页 | 日本性xxxxx| 亚洲aⅴ乱码精品成人区 | 精品九九九 | 91成年人网站 | 99视频在线精品免费观看2 | 久久国产精品一二三区 | 伊人婷婷激情 | 久久久久国产一区二区三区 | 天天天天天天干 | 九九精品在线观看 | a成人v在线 | 五月天网页 | 久久久久久久久久免费视频 | 美女久久网站 | 亚洲三级在线免费观看 | 国产精品福利无圣光在线一区 | 亚洲一级黄色大片 | 最新国产在线观看 | 日日夜夜精品免费 | 亚洲成av人影院 | 五月天激情电影 | 日韩字幕| 日本三级大片 | 这里只有精彩视频 | 少妇啪啪av入口 | 国产打女人屁股调教97 | 有码中文字幕在线观看 | 欧美成人精品欧美一级乱黄 | 激情综合电影网 | 91激情| 中文字幕国产在线 | 在线天堂v | 日韩欧美视频在线免费观看 | 久久久久久久久久久国产精品 | 这里只有精品视频在线 | 亚洲午夜久久久久 | 国产欧美日韩精品一区二区免费 | 91 中文字幕 | 天天久久综合 | 欧美日韩精品在线免费观看 | 91在线看黄 | 不卡的av在线播放 | 美女在线免费视频 | 黄色一级在线观看 | 免费av在线 | 日日干天天射 | 国产精品99久久99久久久二8 | 国产看片 色 | 日韩在线观看免费 | 日韩欧美在线免费观看 | 99久久99久久精品国产片果冰 | 国产成人免费高清 | 麻花豆传媒一二三产区 | 这里只有精彩视频 | jizzjizzjizz亚洲 | 久久精品视频在线观看免费 | www.亚洲精品 | 久久99久久99免费视频 | 在线免费观看视频 | 久久成人精品 | 久热久草在线 | 在线天堂中文在线资源网 | 久精品视频在线观看 | 国产高清在线视频 | 永久免费毛片 | 久久视了| 麻豆视频免费 | 在线免费视 | 少妇做爰k8经典 | 综合国产视频 | 午夜一级免费电影 | 亚洲国内精品在线 | 成人av中文字幕在线观看 | 亚洲成人av电影 | 美女网站视频免费黄 | 亚洲人成网站精品片在线观看 | 国产精品一区二区三区视频免费 | 91视频在线 | 国产淫片免费看 | 国产一区二区免费在线观看 | 欧美一区二区在线免费看 | 精品久久久久久国产偷窥 | 欧美韩日精品 | 中文字幕在线影院 | 狠狠干网 | 96亚洲精品久久久蜜桃 | 国产日产欧美在线观看 | 免费a v观看 | 日本不卡视频 | 五月婷婷深开心 | 一区二区成人国产精品 | 久久免费视频播放 | 香蕉网在线播放 | 免费在线播放黄色 | 欧美xxxxx在线视频 | 天天干夜夜爱 | 免费在线看成人av | 女女av在线 | 色综合在| 在线成人一区二区 | 国产一卡二卡在线 | 色偷偷男人的天堂av | 在线精品视频免费播放 | 久久精品超碰 | 亚洲综合色网站 | 99精品国产视频 | 国产精品一区一区三区 | 中文字幕在线观看第一区 | 日p在线观看 | 色综合网 | 97色综合| 国产中文字幕在线播放 | 国产一级免费电影 | 激情在线五月天 | 色婷婷久久一区二区 | 99精品在线免费视频 | 一区二区三区 亚洲 | 欧美视频不卡 | 亚洲专区欧美 | 久久毛片视频 | 中文字幕制服丝袜av久久 | 日本中出在线观看 | 色综合天天综合在线视频 | 国产黄色成人av | 99福利影院 | 丰满少妇一级 | 午夜在线免费视频 | 欧美日韩中文在线 | 天天综合网天天 | 欧美日韩免费一区二区三区 | 五月婷婷视频在线 | 亚洲天天做 | 亚洲午夜精品在线观看 | 久久99久久99精品免费看小说 | 91看片在线| 亚洲精品乱码久久久久久按摩 | 91av视频| 日韩精品中文字幕有码 | 伊人婷婷久久 | 五月婷婷av在线 | 中文字幕久久亚洲 | 免费看的黄色网 | 九九热久久久 | av品善网| 国产综合精品一区二区三区 | 黄色a视频 | 欧美韩国在线 | 国产.精品.日韩.另类.中文.在线.播放 | 亚洲人成精品久久久久 | 国产精品久久99精品毛片三a | 激情黄色av| 黄色一级大片在线免费看产 | 久草手机视频 | 最新国产在线 | 日日夜操| 久久资源总站 | 天天操天天操天天操天天操天天操天天操 | 六月丁香在线观看 | 日韩国产精品毛片 | 操高跟美女 | 蜜桃视频精品 | 国产日韩欧美在线观看视频 | 亚洲 欧美 日韩 综合 | 00av视频 | 香蕉免费 | 狠狠狠色丁香婷婷综合久久88 | 国产91影院 | 色香蕉在线视频 | 国产精品乱看 | 亚洲精品久久视频 | 精品国产一区在线观看 | 国产日产av | 国产精品久久久久久久久久ktv | 狠狠干中文字幕 | 亚洲高清视频在线观看 | 天天射天天艹 | 亚洲精品麻豆 | 韩国精品一区二区三区六区色诱 | 国产精品欧美久久久久天天影视 | 麻豆视频免费入口 | 午夜久久久久 | 久久精品视频中文字幕 | 激情五月婷婷网 | 国内久久精品 | 国产美女被啪进深处喷白浆视频 | 亚洲涩综合 | 亚洲免费精品一区二区 | 三级午夜片 | 99视频免费播放 | 国产精品国产三级国产aⅴ入口 | 激情图片qvod | 午夜精品一区二区国产 | 亚洲精品国产精品乱码在线观看 | 亚洲精品玖玖玖av在线看 | 久久综合久色欧美综合狠狠 | 久久免费黄色大片 | 欧美日韩在线视频一区 | 人人看人人爱 | 91香蕉视频 | 最近的中文字幕大全免费版 | 一区二区三区视频网站 | 免费高清无人区完整版 | 免费看高清毛片 | 久久午夜免费观看 | av色影院 | 国产一线在线 | 亚洲精品午夜久久久久久久久久久 | 婷婷亚洲五月色综合 | 国产成人精品一区二区 | 日韩视频中文字幕 | 天天干天天摸天天操 | 在线播放第一页 | 亚洲国产影院 | 久久精品亚洲国产 | 激情五月五月婷婷 | 视频一区二区国产 | 国产在线精 | 国产福利在线 | 97国产在线观看 | av在线电影网站 | 日韩av一区二区三区在线观看 | 久久视频免费观看 | 国产精品va最新国产精品视频 | 欧美日韩精品在线播放 | 国产黄色精品 | 欧美日韩国产精品一区二区亚洲 | 高清在线观看av | 激情中文在线 | 九九精品在线观看 | 91免费在线看片 | 精品99999 | 欧美大片aaa | 久久综合色天天久久综合图片 | 天堂av观看 | 91精品秘密在线观看 | 精品国产三级 | 国产高清视频在线 | 日韩一级黄色片 | 成人app在线免费观看 | 欧美日韩国产精品一区二区亚洲 | 精品国产99国产精品 | 999在线观看视频 | 免费黄色网址网站 | 激情久久五月天 | 99精彩视频在线观看免费 | 92av视频 | 丝袜网站在线观看 | 欧美午夜视频在线 | 亚洲乱码在线 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 丁香影院在线 | 久久伊人五月天 | 久久久久久高潮国产精品视 | 久久精品美女视频网站 | 日韩影视大全 | 美女很黄免费网站 | 美女国产| 91麻豆网站 | 免费人成在线观看网站 | 免费在线观看日韩欧美 | 日韩资源在线 | 一区久久久 | 国产在线观看午夜 | 成人午夜精品福利免费 | 欧美精品v国产精品v日韩精品 | 狠狠狠狠狠干 | 亚洲在线国产 | 免费日韩电影 | 日韩免费在线一区 | 在线综合 亚洲 欧美在线视频 | 97品白浆高清久久久久久 | 少妇bbb搡bbbb搡bbbb′ | 欧美人体xx | 狠狠久久婷婷 | 久久国产精品色婷婷 | 欧美日本一区 | 久久久精品高清 | 爱爱av网 | 日韩综合视频在线观看 | 久久精品91久久久久久再现 | 国产四虎影院 | 日韩 在线 | 成人在线免费看视频 | 日韩中字在线 | 干狠狠| 国产精品第2页 | 丰满少妇在线 | 日韩乱理| 久久久久色 | 免费在线观看av片 | 日本激情视频中文字幕 | 国产精品mv在线观看 | 国产无吗一区二区三区在线欢 | 91精品国自产在线观看 | 日日操操 | 黄av免费在线观看 | 青春草免费在线视频 | 韩国精品在线 | a黄色一级| 蜜臀久久99精品久久久酒店新书 | 中文字幕无吗 | 国产精品原创在线 | 久久综合中文字幕 | 成人亚洲精品国产www | 亚洲精品乱码久久久久久蜜桃不爽 | 欧美精品日韩 | 天天操婷婷 | 91麻豆精品国产91久久久使用方法 | 国产青草视频在线观看 | 在线观看免费高清视频大全追剧 | 色婷婷久久一区二区 | 成人av电影免费在线观看 | 日韩另类在线 | 国产精品久久电影网 | www久草| 99久e精品热线免费 99国产精品久久久久久久久久 | 亚洲97在线 | 久久综合久色欧美综合狠狠 | 日日操夜| 久99久久| 亚洲精品在线视频网站 | 欧美色图另类 | 日韩在线不卡av | bayu135国产精品视频 | 亚洲综合爱| 就要色综合| 波多野结衣小视频 | 美女免费视频网站 | 日本 在线 视频 中文 有码 | 色综合天天爱 | 亚洲综合激情网 | 亚洲h色精品 | 69精品视频 | 免费在线色视频 | www夜夜操com | 伊人久久在线观看 | 99精品国产99久久久久久福利 | 国产一级在线看 | 九九免费在线观看视频 | 99精品国产一区二区三区麻豆 | 欧美一级性生活视频 | 婷婷久久综合九色综合 | 国产精品久久久久一区二区三区共 | 草久久久久久 | 国产精品手机视频 | 天堂va欧美va亚洲va老司机 | 免费看黄色小说的网站 | 亚洲va欧美 | 日韩中文字幕在线观看 | 亚洲精品中文字幕视频 | 狠狠干美女 | 91九色精品国产 | 一区二区中文字幕在线播放 | 韩国av免费观看 | 天天夜夜狠狠操 | av不卡免费看| 成人国产网址 | 91麻豆精品国产91久久久无限制版 | se婷婷 | 久久综合免费 | av中文在线播放 | 欧美色图88 | 成人h在线 | 亚洲精品网址在线观看 | 午夜免费电影院 | 国产亚洲欧美日韩高清 | 欧美人体xx | 免费av网址大全 | 97在线视 | 国产69精品久久久久99尤 | 亚洲精选国产 | 亚洲综合成人av | 久久免费av电影 | 午夜性福利 | 成年人免费在线看 | 麻豆视频国产 | 欧美日韩视频网站 | 99色免费视频 | 91视频成人免费 | 91成年人视频 | 国产日韩精品一区二区在线观看播放 | 少妇bbr搡bbb搡bbb | 女人高潮特级毛片 | 日本高清xxxx| 麻豆av电影 | 久草视频免费看 | av成年人电影 | 亚洲免费精品视频 | 狠狠干网 | 一区在线观看 | 日韩有码在线播放 | 久久免费资源 | 亚洲精品在线一区二区三区 | 久久综合久久伊人 | 人人看人人草 | 国产一区二区精 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 美女久久久久久久久久久 | 日本婷婷色 | 又黄又爽又湿又无遮挡的在线视频 | jizz欧美性9| 日韩电影在线观看一区 | 少妇性bbb搡bbb爽爽爽欧美 | 国产精品九九九 |