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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Qt WebSocket服务端的简单Demo

發布時間:2025/3/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt WebSocket服务端的简单Demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WebSocket服務端:QWebSocketServer

目錄

  • WebSocket服務端:QWebSocketServer
  • **背景**:
  • **QWebSocketServer 簡單使用介紹:**
  • 具體開發過程:
  • 主要關鍵代碼分析:
    • 1、服務開啟
    • 2、服務停止:
    • 3、向指定客戶端發送數據
    • 4、響應新接入的客戶端
    • 5、關閉所有的客戶端
    • 6、斷開其中與某個客戶端的連接
    • 7、接收客戶端的數據
    • 8、異常的處理
    • 9、最后在類頭文件添加相關信號,供其他對象關聯調用。
    • 10、窗體的實現:
  • 總結:

背景

最近遇到一個項目要開發一個服務,該服務通過websocket 傳出數據。于是先從簡單的實現開始吧。

QWebSocketServer 簡單使用介紹:

1、Qt對websocket的封裝分為服務端和客戶端,分別使用QWebSocketServer和QWebSocket。

2、QWebSocketServer 和 QTcpServer 都是基于QAbstractSocket模型的。所以可以類似QTcpServer的開發,它們行為相同。使用參照QTcpServer。

3、偵聽:調用listen()讓服務器監聽傳入的連接。

4、接入新的客戶端連接:每次客戶端連接到服務器時都會發出newConnection()信號。調用nextPendingConnection()將等待接入的連接接受為已連接的QWebSocket。函數返回指向QabstractSocket::ConnectedState中QWebSocket的指針,可以使用該指針與客戶端通信。

5、異常處理: 如果發生錯誤,ServerError()返回錯誤類型,并且可以調用ErrorString()以獲取對所發生情況的人類可讀描述。

6、停止接收新的接入:調用close()將使QWebSocketServer停止偵聽傳入的連接。

7、注意:

  • QWebSocket服務器當前不支持WebSocket擴展和WebSocket子工具。

  • 使用自簽名證書時,Firefox bug
    594502會阻止firefox連接到安全的Websocket服務器。要解決此問題,請首先使用https瀏覽到安全WebSocket服務器。Firefox將指示證書無效。從這里開始,可以將證書添加到異常中。在這之后,安全WebSockets連接應該可以工作。

  • QWebSocketServer僅支持WebSocket協議的版本13,如RFC6455所述。

8、服務器安全設置:
枚舉
enum QWebSocketServer::SslMode
指示服務器是通過wss(SecureMode)還是ws(NonSecureMode)運行。

具體開發過程:

1、在工程文件夾中添加: `QT += websockets` 2、包含類 `#include <QWebSocketServer>` 3、創建對象:使用時先new一個QWebSocketServer,傳入服務器名稱和是否使用安全模式(安全模式wss,非安全模式ws),然后關聯其newConnected(),closed(),serverError()。 4、當收到新的連接后,則是轉換為QWebSocket,然后關聯其connected(),disconnected(),error(),textFrameReceived()(或者textMessageReceived()信號,兩個收到消息的信號都會觸發),發送調用sendTextMessage()函數即。 5、為了更好的管理代碼,建一個類來管理webSocketServer class WebSocketServerManager : public QObject{Q_OBJECT public:explicit WebSocketServerManager(QString serverName,QWebSocketServer::SslMode secureMode = QWebSocketServer::NonSecureMode,QObject *parent = 0);~WebSocketServerManager();public:bool running() const;} 6、在該類中添加槽函數成員以及私有變量:如服務開啟,服務停止,服務關閉等 public slots:void slot_start(QHostAddress hostAddress = QHostAddress(QHostAddress::Any), qint32 port = 10080);void slot_stop();void slot_sendData(QString ip, qint32 port, QString message);protected slots:void slot_newConnection();void slot_serverError(QWebSocketProtocol::CloseCode closeCode);void slot_closed();protected slots:void slot_disconnected();void slot_error(QAbstractSocket::SocketError error);void slot_textFrameReceived(const QString &frame, bool isLastFrame);void slot_textMessageReceived(const QString &message);private:QString _serverName;QWebSocketServer::SslMode _sslMode;bool _running;QWebSocketServer *_pWebSocketServer;QHash<QString, QWebSocket*> _hashIpPort2PWebSocket;QHostAddress _listenHostAddress;qint32 _listenPort;

主要關鍵代碼分析:

1、服務開啟

void WebSocketServerManager::slot_start(QHostAddress hostAddress, qint32 port) {if(_running) //如果服務已經開啟{qDebug() << __FILE__ << __LINE__<< "Failed to" << __FUNCTION__ << "it's already running...";return;}if(!_pWebSocketServer) //如果沒有服務,則創建服務{_pWebSocketServer = new QWebSocketServer(_serverName, _sslMode, 0);connect(_pWebSocketServer, SIGNAL(newConnection()), this, SLOT(slot_newConnection()));connect(_pWebSocketServer, SIGNAL(closed()), this, SLOT(slot_closed()));connect(_pWebSocketServer, SIGNAL(serverError(QWebSocketProtocol::CloseCode)),this , SLOT(slot_serverError(QWebSocketProtocol::CloseCode)));}_listenHostAddress = hostAddress;_listenPort = port;//開啟偵聽_pWebSocketServer->listen(_listenHostAddress, _listenPort);//更新標志狀態_running = true; }

2、服務停止:

void WebSocketServerManager::slot_stop() {if(!_running){qDebug() << __FILE__ << __LINE__<< "Failed to" << __FUNCTION__<< ", it's not running...";return;}else{qDebug() << __FILE__ << __LINE__<< "connect to" << __FUNCTION__<< ", it's running...";}_running = false;_pWebSocketServer->close(); }

注意:Qt 有一項很重要的調試工具qDebug(), 而且可以指定文件到行和函數體。

3、向指定客戶端發送數據

void WebSocketServerManager::slot_sendData(QString ip, qint32 port, QString message) {QString key = QString("%1-%2").arg(ip).arg(port);if(_hashIpPort2PWebSocket.contains(key)){_hashIpPort2PWebSocket.value(key)->sendTextMessage(message);} }

注意到這里使用了容器,這使得我們更方便管理客戶端。

4、響應新接入的客戶端

void WebSocketServerManager::slot_newConnection() {QWebSocket *pWebSocket = _pWebSocketServer->nextPendingConnection();connect(pWebSocket, SIGNAL(disconnected()), this, SLOT(slot_disconnected()));connect(pWebSocket, SIGNAL(error(QAbstractSocket::SocketError)),this , SLOT(slot_error(QAbstractSocket::SocketError)));// 既會觸發frame接收也會觸發message接收 // connect(pWebSocket, SIGNAL(textFrameReceived(QString,bool)), // this , SLOT(slot_textFrameReceived(QString,bool)));connect(pWebSocket, SIGNAL(textMessageReceived(QString)),this , SLOT(slot_textMessageReceived(QString)));_hashIpPort2PWebSocket.insert(QString("%1-%2").arg(pWebSocket->peerAddress().toString()).arg(pWebSocket->peerPort()),pWebSocket);qDebug() << __FILE__ << __LINE__ << pWebSocket->peerAddress().toString() << pWebSocket->peerPort();emit signal_conncted(pWebSocket->peerAddress().toString(), pWebSocket->peerPort()); }

5、關閉所有的客戶端

遍歷當前客戶端,逐一關閉。

void WebSocketServerManager::slot_closed() {QList<QWebSocket *> _listWebSocket = _hashIpPort2PWebSocket.values();for(int index = 0; index < _listWebSocket.size(); index++){_listWebSocket.at(index)->close();}_hashIpPort2PWebSocket.clear();emit signal_close(); }

6、斷開其中與某個客戶端的連接

void WebSocketServerManager::slot_disconnected() {qDebug() << __FILE__ << __LINE__ << __FUNCTION__;QWebSocket *pWebSocket = dynamic_cast<QWebSocket *>(sender());if(!pWebSocket){return;}qDebug() << __FILE__ << __LINE__ << __FUNCTION__;emit signal_disconncted(pWebSocket->peerAddress().toString(), pWebSocket->peerPort());_hashIpPort2PWebSocket.remove(QString("%1-%2").arg(pWebSocket->peerAddress().toString()).arg(pWebSocket->peerPort())); }

7、接收客戶端的數據

void WebSocketServerManager::slot_textFrameReceived(const QString &frame, bool isLastFrame) {QWebSocket *pWebSocket = dynamic_cast<QWebSocket *>(sender());if(!pWebSocket){return;}qDebug() << __FILE__ << __LINE__ << frame << isLastFrame;emit signal_textFrameReceived(pWebSocket->peerAddress().toString(), pWebSocket->peerPort(), frame, isLastFrame); }void WebSocketServerManager::slot_textMessageReceived(const QString &message) {QWebSocket *pWebSocket = dynamic_cast<QWebSocket *>(sender());if(!pWebSocket){return;}emit signal_textMessageReceived(pWebSocket->peerAddress().toString(), pWebSocket->peerPort(), message); }

8、異常的處理

void WebSocketServerManager::slot_serverError(QWebSocketProtocol::CloseCode closeCode) {QWebSocket *pWebSocket = dynamic_cast<QWebSocket *>(sender());if(!pWebSocket){return;}emit signal_error(pWebSocket->peerAddress().toString(), pWebSocket->peerPort(), _pWebSocketServer->errorString()); }void WebSocketServerManager::slot_error(QAbstractSocket::SocketError error) {QWebSocket *pWebSocket = dynamic_cast<QWebSocket *>(sender());if(!pWebSocket){return;}emit signal_error(pWebSocket->peerAddress().toString(), pWebSocket->peerPort(), pWebSocket->errorString()); }

9、最后在類頭文件添加相關信號,供其他對象關聯調用。

void signal_conncted(QString ip, qint32 port);void signal_disconncted(QString ip, qint32 port);void signal_sendTextMessageResult(QString ip, quint32 port, bool result);void signal_sendBinaryMessageResult(QString ip, quint32 port, bool result);void signal_error(QString ip, quint32 port, QString errorString);void signal_textFrameReceived(QString ip, quint32 port, QString frame, bool isLastFrame);void signal_textMessageReceived(QString ip, quint32 port,QString message);void signal_close();

10、窗體的實現:

布局一個窗體,將窗體中的控件與類對象WebSocketServerManager關聯。

webSocketServerWidget::webSocketServerWidget(QWidget *parent) :QWidget(parent),ui(new Ui::webSocketServerWidget) {ui->setupUi(this);setWindowTitle("WebSocket服務端Demo v1.0.0 ");ui->pushButton_listen->setEnabled(true);ui->pushButton_stop->setEnabled(false);ui->pushButton_send->setEnabled(false);_pWebSocketServerManager = new WebSocketServerManager("Test");connect(_pWebSocketServerManager, SIGNAL(signal_conncted(QString,qint32)),this , SLOT(slot_conncted(QString,qint32)));connect(_pWebSocketServerManager, SIGNAL(signal_disconncted(QString,qint32)),this , SLOT(slot_disconncted(QString,qint32)));connect(_pWebSocketServerManager, SIGNAL(signal_error(QString,quint32,QString)),this , SLOT(slot_error(QString,quint32,QString)));connect(_pWebSocketServerManager, SIGNAL(signal_textFrameReceived(QString,quint32,QString,bool)),this , SLOT(slot_textFrameReceived(QString,quint32,QString,bool)));connect(_pWebSocketServerManager, SIGNAL(signal_textMessageReceived(QString,quint32,QString)),this , SLOT(slot_textMessageReceived(QString,quint32,QString)));ui->lineEdit_ip->setText(getLocalIp()); }webSocketServerWidget::~webSocketServerWidget() {delete ui; }void webSocketServerWidget::slot_conncted(QString ip, qint32 port) {_strList << QString("%1-%2").arg(ip).arg(port);_hashIpPort2Message.insert(QString("%1-%2").arg(ip).arg(port), QString());_model.setStringList(_strList);ui->listView_ipPort->setModel(&_model);if(_strList.size() == 1){ui->listView_ipPort->setCurrentIndex(_model.index(0));} }void webSocketServerWidget::slot_disconncted(QString ip, qint32 port) {QString str = QString("%1-%2").arg(ip).arg(port);if(_strList.contains(str)){_strList.removeOne(str);_model.setStringList(_strList);ui->listView_ipPort->setModel(&_model);updateTextEdit();} }void webSocketServerWidget::slot_sendTextMessageResult(QString ip, quint32 port, bool result) { }void webSocketServerWidget::slot_sendBinaryMessageResult(QString ip, quint32 port, bool result) {}void webSocketServerWidget::slot_error(QString ip, quint32 port, QString errorString) {}void webSocketServerWidget::slot_textFrameReceived(QString ip, quint32 port, QString frame, bool isLastFrame) {if(_hashIpPort2Message.contains(QString("%1-%2").arg(ip).arg(port))){_hashIpPort2Message[QString("%1-%2").arg(ip).arg(port)]= _hashIpPort2Message[QString("%1-%2").arg(ip).arg(port)] +(_hashIpPort2Message[QString("%1-%2").arg(ip).arg(port)].size() == 0 ? "" :"\n") +QDateTime::currentDateTime().toString("yyyy-HH-mm hh:MM:ss:zzz") + "\n" + frame;}updateTextEdit(); }void webSocketServerWidget::slot_textMessageReceived(QString ip, quint32 port, QString message) {qDebug() << __FILE__ << __LINE__ << message;if(_hashIpPort2Message.contains(QString("%1-%2").arg(ip).arg(port))){_hashIpPort2Message[QString("%1-%2").arg(ip).arg(port)]= _hashIpPort2Message[QString("%1-%2").arg(ip).arg(port)] +(_hashIpPort2Message[QString("%1-%2").arg(ip).arg(port)].size() == 0 ? "" :"\n") +QDateTime::currentDateTime().toString("yyyy-HH-mm hh:MM:ss:zzz") + "\n" + message;}updateTextEdit(); }void webSocketServerWidget::slot_close() {_pWebSocketServerManager->slot_stop();_strList.clear();_model.setStringList(_strList);ui->listView_ipPort->setModel(&_model);ui->textEdit_recv->clear(); }void webSocketServerWidget::updateTextEdit() {int row = ui->listView_ipPort->currentIndex().row();if(row < 0){ui->textEdit_recv->setText("");return;}if(_hashIpPort2Message.contains(_strList.at(row))){ui->textEdit_recv->setText(_hashIpPort2Message.value(_strList.at(row)));} }QString webSocketServerWidget::getLocalIp() {QString localIp;QList<QHostAddress> list = QNetworkInterface::allAddresses();for(int index = 0; index < list.size(); index++){if(list.at(index).protocol() == QAbstractSocket::IPv4Protocol){//IPv4地址if (list.at(index).toString().contains("127.0.")){continue;}localIp = list.at(index).toString();break;}}return localIp; }void webSocketServerWidget::on_pushButton_listen_clicked() {_pWebSocketServerManager->slot_start(QHostAddress::Any, ui->spinBox->value());ui->pushButton_listen->setEnabled(false);ui->pushButton_stop->setEnabled(true);ui->pushButton_send->setEnabled(true); }void webSocketServerWidget::on_pushButton_stop_clicked() {_pWebSocketServerManager->slot_stop();ui->pushButton_listen->setEnabled(true);ui->pushButton_stop->setEnabled(false);ui->pushButton_send->setEnabled(false); }void webSocketServerWidget::on_listView_ipPort_clicked(const QModelIndex &index) {updateTextEdit(); }void webSocketServerWidget::on_pushButton_send_clicked() {int row = ui->listView_ipPort->currentIndex().row();if(_hashIpPort2Message.contains(_strList.at(row))){QString str = _strList.at(row);QStringList strlist = str.split("-");if(strlist.size() == 2){_pWebSocketServerManager->slot_sendData(strlist.at(0),strlist.at(1).toInt(),ui->textEdit_send->toPlainText());}} }

總結:

1、該示例代碼簡單實現了webSocketServer的創建。但是并沒有用到多線程的技術,所以對并發處理不不適合。

2、本示例對數據處理,和錯誤事件并沒有很好的解析,這需要后續實現。

總結

以上是生活随笔為你收集整理的Qt WebSocket服务端的简单Demo的全部內容,希望文章能夠幫你解決所遇到的問題。

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

久久国产三级 | 综合网五月天 | 狠狠色丁香九九婷婷综合五月 | 国产91精品一区二区绿帽 | 久久精品99国产精品日本 | 999久久久久 | 久久精品老司机 | av高清在线观看 | 欧美精品免费视频 | 超碰97人人爱 | 天堂黄色片| av资源在线看 | 久久精品播放 | 精品国产三级 | 91一区二区三区久久久久国产乱 | 国产中文字幕第一页 | 福利视频第一页 | 国产黄色片在线 | 亚洲免费小视频 | 99热在线观看 | 国产黄免费在线观看 | 97色在线观看免费视频 | 黄污视频网站 | 免费av影视| 在线看黄网站 | 久久久蜜桃一区二区 | 欧美亚洲xxx | 国产成人一区二 | 国产视频欧美视频 | 成年人视频在线观看免费 | 国产亚洲在线观看 | www.99在线观看 | 麻豆国产精品va在线观看不卡 | 天天草天天摸 | 91高清免费 | 国产成人在线精品 | 91最新网址在线观看 | 在线免费精品视频 | 亚洲精品美女久久17c | 久久久久久久久免费视频 | 国产精品久久久久久久婷婷 | 精品一区二区电影 | 久久久精品高清 | 日韩色视频在线观看 | 亚洲蜜桃在线 | 日韩在线 一区二区 | av在线电影网站 | 伊人色**天天综合婷婷 | 1000部国产精品成人观看 | 18av在线视频| 六月色婷婷| 美女网站在线免费观看 | 超碰在线个人 | 91传媒视频在线观看 | 国产亚洲aⅴaaaaaa毛片 | 日本公妇色中文字幕 | 中文字幕在线观看不卡 | 成人午夜av电影 | 在线视频一区二区 | 狠狠艹夜夜干 | 国产亚洲日 | 久久久久久久久久久久久久电影 | 最新日韩视频在线观看 | 国产无套精品久久久久久 | 亚洲激情综合 | 色综合天天天天做夜夜夜夜做 | 亚洲视频综合在线 | 涩涩网站在线观看 | www国产一区| 久久精品国产精品亚洲精品 | 免费国产在线观看 | 亚州av成人 | 在线91视频 | 国产精品久久久久av福利动漫 | 亚洲午夜精品在线观看 | 午夜国产福利在线观看 | 久久国产91 | 一区二区三区中文字幕在线 | 91精品1区2区| 国产乱老熟视频网88av | 天天天色 | 视频一区二区国产 | 国产精品观看视频 | 亚洲精品一区中文字幕乱码 | 一区三区视频在线观看 | 福利电影久久 | 成人免费电影 | 六月丁香婷 | 日本视频不卡 | 97超碰人人模人人人爽人人爱 | 91视视频在线直接观看在线看网页在线看 | 亚洲国产精品va在线看黑人动漫 | 精品高清美女精品国产区 | 在线观看黄av | 中文字幕在线播出 | 婷婷六月综合网 | 久久区二区 | 国产自制av | 欧美日产在线观看 | 欧美成人中文字幕 | 在线观看视频你懂的 | 99久久精品免费看国产 | 国产一区二区精品久久91 | 97人人超| 亚洲精品日韩一区二区电影 | 精品麻豆入口免费 | av成年人电影 | 天无日天天操天天干 | 色 免费观看 | 午夜黄色大片 | 亚洲国产网址 | 成年人在线观看免费视频 | 在线观看视频三级 | 婷五月天激情 | 五月天久久狠狠 | 国产日韩欧美网站 | 91av网址| 欧美了一区在线观看 | 国产一区二区三区免费视频 | 97在线免费观看 | 在线免费观看视频你懂的 | 国产精品一区二区久久国产 | 丁香六月中文字幕 | 亚洲一区二区三区四区精品 | 最新日韩中文字幕 | www.超碰| 国产精品久久久久国产a级 激情综合中文娱乐网 | 99久久婷婷国产精品综合 | 亚洲理论片 | 在线小视频你懂的 | 极品久久久久久久 | 黄色精品网站 | 欧美激情精品久久久 | 国产一区二区三区免费在线观看 | 这里只有精彩视频 | 69av在线播放 | 久久国产精品免费视频 | 五月婷婷综合网 | 亚洲精品国产高清 | 国产剧情一区二区 | 国产经典av | 中文字幕4 | 日本精品久久久一区二区三区 | 国产精品原创 | 美女黄频在线观看 | 一级黄色a视频 | 美女中文字幕 | 激情av资源网| 一区二区三区免费在线 | 视频在线观看入口黄最新永久免费国产 | 久草在线视频资源 | 五月激情站 | 伊人宗合网 | 男女精品久久 | 中文在线a√在线 | 中文字幕日韩伦理 | 超碰97人人在线 | 成人v| 亚洲黄在线观看 | 国产热re99久久6国产精品 | 最近免费在线观看 | 99久久婷婷国产综合精品 | 美女久久久久久久久久久 | 91精品久久久久久粉嫩 | 波多野结衣日韩 | 超碰人人av| 美女久久久 | 最新婷婷色 | 黄色一级大片在线免费看国产一 | 天天操天天干天天摸 | 国产美女网 | 成人免费 在线播放 | 日韩女同一区二区三区在线观看 | 久久久精品国产一区二区电影四季 | 成人国产精品久久久 | 97免费视频在线播放 | 成人av一级片 | 五月激情姐姐 | 欧美性生活大片 | 久久免费视频这里只有精品 | 精品久久久久久国产91 | 超碰在线人| 亚洲女人天堂成人av在线 | 99精品国产一区二区三区麻豆 | 国产不卡在线观看 | 亚洲精品玖玖玖av在线看 | 偷拍精偷拍精品欧洲亚洲网站 | 免费国产视频 | 91亚洲精品久久久中文字幕 | 免费一级片视频 | 在线看国产日韩 | 国产一及片 | 色资源网免费观看视频 | 很黄很污的视频网站 | 毛片无卡免费无播放器 | 免费午夜网站 | 亚洲午夜精品一区二区三区电影院 | 久久久久久久99精品免费观看 | 国产资源在线播放 | 日本在线观看一区二区 | 天堂麻豆| 成人午夜剧场在线观看 | 日韩成人精品 | 在线最新av | 久久爱资源网 | 婷婷综合国产 | 丁香视频五月 | av在线免费不卡 | 少妇搡bbbb搡bbb搡aa | 日韩理论片中文字幕 | 日韩高清在线一区二区 | 最新午夜电影 | 久久99精品久久只有精品 | 2019天天干夜夜操 | 久久精品系列 | 国产一级在线视频 | 奇米四色影狠狠爱7777 | 国产精品小视频网站 | 中文字幕免费高清在线观看 | 亚洲综合成人专区片 | 国产最新网站 | 色狠狠综合天天综合综合 | 久久免费播放 | 精品一区二区免费视频 | 久久99久久99| 国产永久免费 | 国产精品va在线观看入 | 天天射天天做 | 亚洲精品久久激情国产片 | 免费看国产视频 | 狠狠色丁香久久婷婷综合丁香 | 成人在线免费看视频 | 久久精品久久精品久久精品 | 国产手机在线 | 久操免费视频 | 午夜免费福利片 | 一区二区视频播放 | 国产91成人 | 成人免费ⅴa | 亚洲在线不卡 | 免费在线激情电影 | av在线一级| 久99精品 | avlulu久久精品 | 亚洲一二三在线 | 婷久久| 91精品国产自产在线观看永久 | 久久精品视频免费播放 | 国产成人免费av电影 | 久久久私人影院 | 国产欧美高清 | 亚洲国产精品成人va在线观看 | 999久久久欧美日韩黑人 | 一本一本久久aa综合精品 | 婷婷网五月天 | 日日夜夜91 | 性色av一区二区三区在线观看 | 黄网站色欧美视频 | 日本久久成人中文字幕电影 | 国产在线精品一区二区三区 | 国产精品久久久久999 | 久久黄网站 | 欧美高清视频不卡网 | 天天干天天干天天色 | 亚洲精品乱码久久久久久按摩 | 欧美日韩视频免费 | 99久久久久免费精品国产 | 成年人免费av网站 | japanesexxxxfreehd乱熟 | 在线观看视频免费播放 | 久草在线视频在线 | 日韩精品资源 | 久久国产影院 | 国产亚洲精品久久久久久移动网络 | www.色就是色 | 国内精品免费 | 亚洲黄色av一区 | 色在线免费观看 | 亚洲永久精品在线观看 | 日日躁夜夜躁aaaaxxxx | 久久亚洲综合色 | 精品久久一级片 | 波多野结衣在线观看一区二区三区 | 中文字幕av全部资源www中文字幕在线观看 | 精品av网站| 国外成人在线视频网站 | 久久黄视频 | 69精品久久久 | 国产一级免费在线 | 中文字幕一区2区3区 | 色网站在线观看 | 97色婷婷人人爽人人 | 成人午夜电影久久影院 | 在线观看蜜桃视频 | 国产精品第54页 | 久久免费的精品国产v∧ | 福利一区在线 | 日韩电影在线视频 | 黄色av影视 | 依人成人综合网 | 日韩xxxxxxxxx | 亚洲另类视频 | 日本免费久久高清视频 | 天天操天天干天天插 | 国产精品二区三区 | 久草热久草视频 | 成年人av在线播放 | 成人av教育 | 日韩精品中文字幕久久臀 | 欧美性做爰猛烈叫床潮 | 国产精品theporn | 伊色综合久久之综合久久 | 一级黄色片毛片 | 人人澡人人舔 | 日韩成人免费在线观看 | 日本女人逼| 久草视频精品 | 在线国产一区 | 国产精品第52页 | 青草草在线视频 | 天天色天天干天天色 | 欧美另类v | 免费观看一级视频 | 久久影院亚洲 | 一级片视频免费观看 | 91视频在线网址 | 国产自偷自拍 | 国产999精品久久久影片官网 | 一区二区三区国产欧美 | 国产一级在线看 | 亚洲精品色视频 | 日日夜夜精品视频天天综合网 | 国产精品久久久久婷婷二区次 | 国产视频 亚洲视频 | 欧美精品乱码久久久久 | 欧美精品三级 | 一本一道波多野毛片中文在线 | 久久在线视频精品 | 亚洲黑丝少妇 | 97福利| 一级做a爱片性色毛片www | 日韩在线小视频 | 天天爽网站 | 日日夜夜av | 欧美激情一区不卡 | 青草视频在线免费 | 日韩久久精品一区二区三区下载 | 国产亚洲精品久久久久久久久久久久 | 精品视频在线视频 | 亚洲精品视频在线免费 | 亚洲一区黄色 | 色国产精品| 97国产一区二区 | 色婷婷www | 天天se天天cao天天干 | 日本中文字幕在线视频 | 91精品在线免费观看 | 久久调教视频 | 制服丝袜在线91 | 91精品婷婷国产综合久久蝌蚪 | 西西大胆啪啪 | 日韩二区三区在线 | 国产精品一区二区三区视频免费 | 中文国产在线观看 | 看片一区二区三区 | 精品国产精品久久一区免费式 | 国产一级免费播放 | 五月婷婷六月丁香 | 国产亚洲婷婷免费 | 黄色大片av | 免费黄色网址大全 | 色99在线 | 欧美日韩在线视频一区二区 | 超碰免费观看 | 久久久久久网站 | 又色又爽又激情的59视频 | 偷拍精偷拍精品欧洲亚洲网站 | 国产精品毛片久久久 | 亚洲精品国产免费 | 国产在线中文字幕 | 国产精品一区二区久久久 | 日韩久久视频 | 中文字幕一区二区三区久久 | 992tv在线观看 | 91视频在线网址 | 国产资源免费 | 日韩在线播放欧美字幕 | 免费看的黄色 | 国产精品久久久久免费 | 狠狠干夜夜 | 最新在线你懂的 | 在线高清| 成 人 黄 色 片 在线播放 | 人成电影网 | 国产成人一二三 | 国产精品12 | 精品国产诱惑 | 成人av一二三区 | 国产精品久久久久久久免费大片 | 91亚·色| 午夜精品久久久久久 | 亚洲精品午夜视频 | 欧美热久久 | 日韩在线网址 | 日韩二区在线观看 | 亚洲最新av| 91精品在线免费 | 免费日韩一区二区 | 国产一级在线免费观看 | 日韩免费福利 | 日韩在线视频二区 | 久热免费在线观看 | 国产一区欧美在线 | 免费一级特黄毛大片 | 黄色三级av | 久久精品资源 | 日韩精选在线观看 | 在线视频国产区 | 国产成人精品一区一区一区 | 国产精品亚 | 色www永久免费 | 欧美片网站yy | 欧美先锋影音 | 久久免费视频这里只有精品 | 午夜国产福利在线 | 天天干,天天操,天天射 | 欧美a级在线免费观看 | 亚洲国产精品视频在线观看 | 麻豆传媒电影在线观看 | 色播五月激情五月 | 992tv在线观看网站 | 麻豆视频免费观看 | 99久久久久久国产精品 | 国产在线精品一区二区 | 在线观看免费视频你懂的 | 中文字幕乱码在线播放 | 亚洲三级国产 | 日韩三级不卡 | 国内精品视频免费 | 一性一交视频 | 岛国精品一区二区 | 中文字幕乱码在线播放 | 成年人黄色免费看 | 激情视频国产 | 最近高清中文字幕在线国语5 | 国产丝袜制服在线 | 精品国产视频在线观看 | 日韩在线免费 | 毛片无卡免费无播放器 | 国产成人精品一区二区三区福利 | 国产麻豆视频在线观看 | 在线日韩av | 99在线热播精品免费 | 啪啪凸凸 | 久久精品123 | 亚洲精品一区二区在线观看 | 久久久久久久久免费 | 国产精品久久久久三级 | 成人av av在线 | 麻豆传媒视频在线免费观看 | 91av原创| 日韩区在线观看 | 亚洲综合成人专区片 | 午夜国产在线 | 在线观看精品一区 | 在线中文字幕一区二区 | 麻豆视频免费播放 | 精品久久久久久久久久 | 久久精品国产成人 | 最新动作电影 | 亚洲精品女| 视频在线观看日韩 | 成年人网站免费在线观看 | 国产伦精品一区二区三区免费 | 国产免费久久 | 成人午夜电影久久影院 | 日韩电影一区二区在线观看 | 久视频在线播放 | 日日草视频 | 成人小视频在线观看免费 | 天天干天天干天天操 | www黄色com| 国产精品麻豆视频 | 天天干亚洲 | 成人av高清在线 | 99在线观看视频网站 | 最近日本韩国中文字幕 | 久九视频 | 亚洲一级国产 | 国产成人久久久77777 | 91自拍视频在线 | 麻豆影视网 | 波多野结衣小视频 | 国产视频色 | 国产黄色免费电影 | 国产视频观看 | 最近中文字幕视频完整版 | 久久精品国产99国产 | 午夜精品久久久久久久久久久 | 日韩中文字幕在线看 | 中文字幕乱码日本亚洲一区二区 | 婷婷六月在线 | 91av中文| 国产分类视频 | 99久久激情视频 | 在线小视频 | 日日干,天天干 | 日韩高清在线一区二区三区 | 国产 欧美 日本 | 色婷婷九月 | 97超碰资源站 | 国产精品久久久久久久久毛片 | 欧美成年性 | 手机av在线网站 | 国产一区二区在线免费观看 | 久久中文字幕视频 | 日韩影视在线观看 | 久久欧美综合 | 久一网站 | 免费看国产黄色 | 伊人va| 中文字幕观看在线 | 99久久婷婷国产 | 国产精品九九久久久久久久 | 久久精品婷婷 | 久久久www成人免费毛片 | 国产69精品久久久久久久久久 | 99热超碰在线 | wwwww.国产 | 日韩视频一区二区 | 操操爽| 亚洲欧美日韩不卡 | 97超碰人人澡人人爱 | 中文字幕首页 | 日韩高清在线看 | 在线视频第一页 | 精品国产一区二区三区不卡 | 99热国产在线 | 69精品在线观看 | 一区二区中文字幕在线 | 99精彩视频在线观看免费 | 99久久国产免费,99久久国产免费大片 | 精品久久亚洲 | 在线只有精品 | 黄色国产大片 | 成人久久久久久久久久 | 国产成视频在线观看 | 99久久婷婷国产 | 麻豆视频在线免费观看 | 国产精品久久久久久99 | 99精品视频一区二区 | 欧美日韩久久不卡 | 91精品天码美女少妇 | 国产成人精品一区二区三区在线观看 | 国产在线1区| 精品国产视频一区 | 国产精品久久在线 | 18久久久久 | av中文字幕亚洲 | 一级黄色a视频 | 香蕉视频4aa| 国产精品网红直播 | 成人97人人超碰人人99 | 一本一本久久a久久精品牛牛影视 | 丰满少妇在线观看资源站 | 日韩 在线 | 国产三级午夜理伦三级 | 久久久久久久av | av成人免费在线观看 | 一区 在线 影院 | 99久久夜色精品国产亚洲96 | 日本aaa在线观看 | 国产高清视频免费 | 免费黄在线看 | 久草视频观看 | 亚洲精品视频www | 久久精品男人的天堂 | 日韩在线观看av | 黄色免费看片网站 | 精品久久影院 | 国产成人精品福利 | 人人澡av | 国产精品福利在线 | 欧美大香线蕉线伊人久久 | 不卡在线一区 | 日韩在线免费不卡 | 久久香蕉国产 | 五月婷婷激情五月 | 天天天干天天射天天天操 | 日韩欧美综合视频 | 亚洲人成在线电影 | av一本久道久久波多野结衣 | 97超碰精品 | 国产高清亚洲 | 探花视频在线版播放免费观看 | 日韩三级久久 | 西西www4444大胆在线 | 国产视频欧美视频 | 伊人中文网 | 正在播放国产一区 | 久久久久久久久久久国产精品 | 午夜美女av | 91成人在线观看喷潮 | 免费中文字幕视频 | 亚洲三区在线 | 精品一二三四五区 | 一区二区三区福利 | 成片人卡1卡2卡3手机免费看 | 麻豆视频免费观看 | 国产高清av在线播放 | 91香蕉亚洲精品 | 草久在线播放 | 成年人视频在线 | 2019精品手机国产品在线 | 免费高清在线一区 | 久久精品站 | av在线播放国产 | 国产又粗又猛又黄 | 久草爱| 亚洲狠狠操 | 国产成人一区二区三区电影 | 久热色超碰 | 日韩在线观看第一页 | 亚洲欧美视频一区二区三区 | 久久亚洲综合色 | 国产精品国产三级国产专区53 | 在线视频欧美日韩 | 欧美精品做受xxx性少妇 | 久草视频免费 | 亚洲国产一区在线观看 | 色综合网| 国产香蕉97碰碰碰视频在线观看 | 国产在线视频导航 | 国产精品欧美一区二区 | 五月天丁香 | 精品久久久久久久久久岛国gif | 四虎影视成人永久免费观看视频 | 日韩一级电影网站 | 三级黄色理论片 | 天天操天天操天天操 | 激情在线网站 | 婷婷色站 | 中文字幕一区二区三区久久蜜桃 | 欧美日韩一区二区在线观看 | 91九色精品女同系列 | 亚洲 综合 激情 | 麻豆国产露脸在线观看 | 在线99| 九九久久久久久久久激情 | 精品专区一区二区 | 欧美日韩国产一区二区三区 | 91精品久久久久久综合乱菊 | 亚洲特级片 | 久久 国产一区 | 视频一区在线播放 | 欧美日韩性视频 | 久久精品一区二区三区四区 | 久久久免费看视频 | 免费中文字幕 | 成年人电影毛片 | 欧美久久电影 | 欧美va日韩va| 亚洲精品视频在线观看免费视频 | 欧美日韩1区 | 黄色a在线 | 国产在线资源 | 亚洲黄色免费在线看 | 久久专区 | 97在线资源 | 日韩一级电影在线 | 一级电影免费在线观看 | 日韩网页 | 亚洲成年人在线播放 | 91久久久国产精品 | 亚洲国产成人在线 | 国产精品丝袜久久久久久久不卡 | 96精品视频 | 色午夜| 久久综合久色欧美综合狠狠 | 一区二区三区在线影院 | 精品中文字幕在线 | 婷婷在线免费 | 看国产黄色片 | 中文免费 | av免费网页 | 久久a v视频 | 精品高清美女精品国产区 | 精品a在线 | 久精品视频免费观看2 | 成人av高清在线观看 | 色五月成人 | 96国产精品 | 精品久久久久一区二区国产 | 久久久精品福利视频 | 国产中文字幕第一页 | 久久人人看 | 亚洲涩涩色 | 狠狠色丁香久久婷婷综合_中 | 国产精品麻豆果冻传媒在线播放 | 亚洲欧美视频在线观看 | 日韩理论片在线观看 | 深夜激情影院 | 久久日本视频 | 亚洲高清视频在线观看免费 | 麻豆你懂的| 久久成人国产精品免费软件 | 免费在线观看黄 | 日韩电影一区二区在线 | 麻豆视频免费 | 久草视频在线免费看 | 天天搞天天干 | 久久夜色精品国产欧美乱 | 激情视频综合网 | 国产一区二区三区免费视频 | av免费电影在线 | 亚洲人人av | av丁香花| 在线一区av | 日日夜夜人人精品 | 色www精品视频在线观看 | 狠狠操操网 | 成人影片在线免费观看 | 精品国产免费久久 | 激情久久一区二区三区 | 欧美日本在线视频 | 亚洲综合在线五月 | 999久久久免费视频 午夜国产在线观看 | 中文字幕在线色 | 香蕉影视在线观看 | 不卡的av在线播放 | 日韩理论在线视频 | 日韩在线电影一区 | 最近免费中文字幕 | 精品久久久久久国产 | 免费成人在线电影 | 久久私人影院 | 狠狠躁天天躁 | 欧美孕妇与黑人孕交 | 91大神免费在线观看 | 日韩免费成人av | 国产中文欧美日韩在线 | 欧美一二三视频 | 日韩 在线 | 国产 在线 日韩 | 成人午夜久久 | 亚洲天堂网在线视频 | av黄色在线 | 九九综合在线 | 99精品视频在线观看免费 | 国产在线一区二区三区播放 | 91在线观看高清 | 国产成人久久精品一区二区三区 | 日本黄色片一区二区 | 亚洲成人午夜在线 | 国产美女主播精品一区二区三区 | 午夜久操 | 国产精品福利在线观看 | 最近中文字幕在线播放 | 2021国产精品 | 国产精品手机看片 | 欧美精品你懂的 | 中文字幕久久精品 | 日本精品在线 | 天天射狠狠干 | 久久99精品久久久久久清纯直播 | 在线观看国产91 | 亚洲每日更新 | 天天插夜夜操 | 亚洲色图色 | 亚洲视频 中文字幕 | 国产午夜免费视频 | 99婷婷狠狠成为人免费视频 | 一本一本久久a久久精品综合 | 欧美经典久久 | 亚洲一区二区精品3399 | 成人黄色在线 | 夜夜骑天天操 | 色婷婷丁香 | 99久久久久国产精品免费 | 视频福利在线观看 | 视频1区2区 | 激情综合五月婷婷 | 天天干天天干天天色 | 在线免费视频 你懂得 | 成人免费在线看片 | 国产午夜精品久久久久久久久久 | 亚洲另类视频在线观看 | 亚洲高清精品在线 | 国产一级黄 | 久久综合中文色婷婷 | 欧美日高清视频 | 日韩天堂网 | 亚洲自拍偷拍色图 | 免费久久99精品国产婷婷六月 | 久久人人精品 | 最新av网址大全 | 成人a级网站 | 黄色片视频免费 | 97在线观看| 久久久久久久久久久网站 | 在线观看视频你懂 | 国产成人一级 | 99久久婷婷国产综合亚洲 | 国产精品久久久久久久电影 | 亚洲91av| 国产成人一区二区三区久久精品 | 亚洲人av免费网站 | 91福利社区在线观看 | 99这里只有久久精品视频 | 国产麻豆剧果冻传媒视频播放量 | 国产最新精品视频 | 少妇bbbb搡bbbb搡bbbb | 人人爽人人澡人人添人人人人 | 久久久999精品视频 国产美女免费观看 | 日韩激情精品 | 久久丁香网 | 91在线免费播放视频 | 久久久久久久综合色一本 | 国产精品久久久久久久久久直播 | 欧美午夜精品久久久久久孕妇 | 国产精品 国产精品 | 97精品伊人| 久久久久蜜桃 | 免费观看高清 | 五月婷婷六月综合 | 国产精品久久久久久模特 | 国产精品综合在线观看 | 免费看日韩 | 国产中文在线视频 | 国产精品区二区三区日本 | 97碰在线视频| 91精品入口| 97在线成人 | 五月婷色 | 激情五月在线观看 | 在线看小早川怜子av | 精品二区久久 | 日韩一区二区三免费高清在线观看 | 久久久久久久久久久精 | 久久久www成人免费精品 | 国产午夜精品一区二区三区四区 | 国产精品久久二区 | 亚洲精品午夜国产va久久成人 | 天天天天天干 | 国产成人精品不卡 | 在线国产91 | 成人一区二区三区在线 | 奇米7777狠狠狠琪琪视频 | 夜夜夜夜爽 | 蜜桃视频日本 | 在线天堂日本 | av三级在线播放 | 免费观看第二部31集 | 国产午夜视频在线观看 | 亚洲成a人片77777潘金莲 | 最新国产精品拍自在线播放 | 日日干夜夜操视频 | 国产成人久久 | 91久久国产综合精品女同国语 | 波多野结衣电影久久 | 又黄又刺激 | 精品视频在线免费 | 丁香激情综合国产 | 日本黄色片一区二区 | 九九精品视频在线看 | 九九久久成人 | 日韩欧美专区 | 视频成人永久免费视频 | 亚洲蜜桃在线 | 超碰午夜| 九九热.com| 波多野结衣在线视频一区 | 超碰在线观看av | 毛片区| 欧美色婷 | 少妇bbw搡bbbb搡bbbb | 美女视频永久黄网站免费观看国产 | 99一区二区三区 | 国产精品久久久久久久久久ktv | 色偷偷88欧美精品久久久 | 精品视频免费播放 | 久久中文精品视频 | 99精品欧美一区二区 | 日韩精品视频在线观看网址 | 天堂av在线免费 | 国产精品视频一二三 | 日韩区视频 | 91在线看网站 | 人人澡人人添人人爽一区二区 | 日日夜夜操av | 最近最新最好看中文视频 | 国产成人一区二区三区电影 | 黄色成人小视频 | 欧美精品久久久久久久免费 | 国产不卡视频在线播放 | 日韩av不卡在线播放 | 天天视频亚洲 | 欧美日韩一区二区久久 | 日日操网站 | 国内丰满少妇猛烈精品播 | 日韩动态视频 | 国产综合福利在线 | 狠狠色丁香久久综合网 | 狠狠色丁香婷婷综合久小说久 | 91麻豆国产 | 韩国视频一区二区三区 | 久久天堂精品视频 | 亚洲国产视频a | 国产不卡视频在线 | 91亚洲在线 | 免费三级影片 | 久久美女视频 | 99一级片 | 开心激情网五月天 | 欧美一区二区日韩一区二区 | 91香蕉国产 | 日本99精品 | 国产亚洲精品xxoo | 狠狠色综合网站久久久久久久 | 午夜精品久久久久99热app | 欧美日韩中文在线视频 | www色| 国产一级黄 | 国产亚洲精品成人av久久ww | 国产精品美女久久久久久免费 | 色噜噜日韩精品一区二区三区视频 | 日韩高清免费在线观看 | 日韩啪啪小视频 | 96亚洲精品久久久蜜桃 | 麻豆传媒在线视频 | 国产美女黄网站免费 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产高清专区 | 日韩成人黄色av | 日韩av一区二区三区在线观看 | 日韩毛片在线播放 | 欧美一区二区三区在线 | 亚洲一二区视频 | 99在线热播精品免费 | 色之综合网 | 91色国产在线 | 国产精品va | 亚洲精品字幕在线观看 | 日日精品 | 97人人网 | 黄色aaa毛片 | 久久综合给合久久狠狠色 | 国产人成免费视频 | 综合国产在线观看 | 91精品网站在线观看 | 国产精品视频资源 | 久久免费精品一区二区三区 | 国产精品99久久久久久有的能看 | 国产91九色蝌蚪 | 91在线永久 | 久久最新 | 永久免费的啪啪网站免费观看浪潮 | 日韩av伦理片 | 亚洲特级毛片 | 国产在线观看二区 | 久久精品人 | 国产视频精品在线 | 精品久久精品久久 | 精品国产日本 | 日韩免费网址 | 一区二区精品在线 | av国产网站| av中文字幕网 | 亚洲精品日韩一区二区电影 | 久久久免费视频播放 | 色五月成人 | 日韩久久在线 | 99 久久久久 | 色中色亚洲 | 天天干夜夜夜 | 婷婷干五月 | 成人精品福利 | 人人要人人澡人人爽人人dvd | 久久精品99国产精品亚洲最刺激 | 久久午夜国产精品 | 99视频免费看 | 亚洲黄色在线观看 | 亚洲精品免费在线观看视频 | 国产精品久久久久久久久久久久午夜 | 国产视频一区二区在线播放 | 国产成人精品999在线观看 | 99精品热视频只有精品10 | 2023av在线| 日韩在线观看你懂得 | 国产小视频在线观看免费 | 亚洲综合视频网 | 国外成人在线视频网站 | 国内少妇自拍视频一区 | 欧美极品xxx | 永久免费毛片 | 午夜少妇| 日本性xxxxx| 激情视频在线高清看 |