• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Qt的智能終端服務(wù)器及其在造紙工業(yè)中的應(yīng)用

    2014-08-15 00:42:04張?zhí)煊?/span>
    天津造紙 2014年3期
    關(guān)鍵詞:服務(wù)端監(jiān)聽線程

    張?zhí)煊?/p>

    (天津環(huán)球磁卡股份有限公司,天津,300202)

    1 Qt

    1.1 Qt是什么

    [1]Qt是一個1991年由奇趣科技開發(fā)的跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架。它既可以開發(fā)GUI程序,也可用于開發(fā)非GUI程序,比如控制臺工具和服務(wù)器。Qt是面向?qū)ο蟮目蚣埽褂锰厥獾拇a生成擴展 (稱為元對象編譯器 (Meta Object Compiler,moc))以及一些宏,易于擴展,允許組件編程。2008年,奇趣科技被諾基亞公司收購,QT也因此成為諾基亞旗下的編程語言工具。2012年,Qt被Digia收購。

    1.2 Qt平臺支持

    ● MS/Windows-95、98、NT4.0、ME、2000、XP、Vista、Win7、win8、win2008。

    ● Unix/X11-Linux、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS 和其它很多X11平臺。

    ●Macintosh-Mac OS X。

    ●Embedded-有幀緩沖 (framebuffer)支持的嵌入式Linux平臺,Windows CE。

    1.3 Qt Creator

    Qt Creator是Qt開發(fā)跨平臺 IDE,Qt Creator和Qt共同構(gòu)成的Qt SDK,包含了開發(fā)跨平臺應(yīng)用程序所需的全部功能。

    Qt Creator是一個用于Qt開發(fā)的輕量級跨平臺集成開發(fā)環(huán)境。Qt Creator可提供首個專為支持跨平臺開發(fā)而設(shè)計的集成開發(fā)環(huán)境(IDE)。

    Qt Creator包含了一套用于創(chuàng)建和測試基于Qt應(yīng)用程序的高效工具,包括:

    一個高級的C++代碼編輯器,上下文感知幫助系統(tǒng),可視化調(diào)試器,源代碼管理,項目和構(gòu)建管理工具。

    Qt Creator在LGPL2.1版本授權(quán)下有效,并且接受代碼貢獻。

    Qt Linguist被稱為Qt語言家。它的主要任務(wù)只是讀取翻譯文件、為翻譯人員提供友好的翻譯界面,它是用于界面國際化的重要工具。

    Linguist工具從4.5開始可以支持Gettext的PO文件格式。

    Qt的良好封裝機制使得 Qt的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常方便的。 Qt提供了一種稱為 signals/slots的安全類型來替代callback,這使得各個元件之間的協(xié)同工作變得十分簡單。

    Qt包括多達 250個以上的C++類,還提供基于模板的 collections,serialization, file,I/O device,directory management,date/time類。甚至還包括正則表達式的處理功能。

    支持 2D/3D圖形渲染,支持 OpenGL,支持XML。

    2 多線程

    2.1 概念

    [2]在一個程序中,這些獨立運行的程序片段叫作“線程”(Thread),利用它編程的概念就叫作“多線程處理”。

    每個正在系統(tǒng)上運行的程序都是一個進程。每個進程包含一到多個線程。進程也可能是整個程序或者是部分程序的動態(tài)執(zhí)行。線程是一組指令的集合,或者是程序的特殊段,它可以在程序里獨立執(zhí)行。也可以把它理解為代碼運行的上下文。所以線程基本上是輕量級的進程,它負責(zé)在單個程序里執(zhí)行多任務(wù)。通常由操作系統(tǒng)負責(zé)多個線程的調(diào)度和執(zhí)行。

    線程是程序中一個單一的順序控制流程。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。

    線程和進程的區(qū)別在于,子進程和父進程有不同的代碼和數(shù)據(jù)空間,而多個線程則共享數(shù)據(jù)空間,每個線程有自己的執(zhí)行堆棧和程序計數(shù)器為其執(zhí)行上下文。多線程主要是為了節(jié)約CPU時間,發(fā)揮利用,根據(jù)具體情況而定。線程的運行中需要使用計算機的內(nèi)存資源和CPU。

    2.2 優(yōu)點

    ●使用線程可以把占據(jù)時間長的程序中的任務(wù)放到后臺去處理。

    ●程序的運行速度可能加快。

    ●在一些等待的任務(wù)實現(xiàn)上如用戶輸入、文件讀寫和網(wǎng)絡(luò)收發(fā)數(shù)據(jù)等,線程就比較有用了。在這種情況下可以釋放一些珍貴的資源如內(nèi)存占用等等。

    2.3 缺點

    ●如果有大量的線程,會影響性能,因為操作系統(tǒng)需要在它們之間切換。

    ●更多的線程需要更多的內(nèi)存空間。

    ●線程可能會給程序帶來更多“bug”,因此要小心使用。

    ●線程的中止需要考慮其對程序運行的影響。

    ●通常塊模型數(shù)據(jù)是在多個線程間共享的,需要防止線程死鎖情況的發(fā)生。

    2.4 Qt多線程

    傳統(tǒng)的圖形用戶界面應(yīng)用程序都只有一個執(zhí)行線程,并且一次只執(zhí)行一個操作。如果用戶從用戶界面中調(diào)用一個比較耗時的操作,那么當(dāng)執(zhí)行這個操作時,雖然實際上該操作正在進行,但用戶界面通常會凍結(jié)而不再響應(yīng),多線程正是一種解決方案。

    在多線程應(yīng)用程序中,圖形用戶界面運行于它自己的線程中,而另外的事件處理過程則會發(fā)生在一個或多個其他線程中。這樣做之后,即使在處理那些數(shù)據(jù)密集的事件時,應(yīng)用程序也能對用戶界面保持響應(yīng)。當(dāng)在一個處理器上運行時,多線程應(yīng)用程序可能會比實現(xiàn)同樣功能的單線程應(yīng)用程序運行得更慢一些,無法體現(xiàn)出其優(yōu)勢。但在目前多處理器系統(tǒng)越來越普及的情況下,多線程應(yīng)用程序可以在不同的處理器中同時執(zhí)行多個線程,從而獲得更好的總體性能。

    QThread提供了與平臺無關(guān)的線程。一個QThread代表單獨運行于程序的線程。在QT中使用多線程,建立一個類(Thread)繼承QThread類即可。QThread類也有一個虛函數(shù),這個函數(shù)是run(),線程建立并啟動(QThread::start())后,就會執(zhí)行這里面的代碼,因此,線程的邏輯過程就應(yīng)該在run()里面定義。

    例如:

    1.//mythread.h

    2.#ifndef MYTHREAD_H

    3.#define MYTHREAD_H

    4.#include

    5.class MyThread:public QThread

    6.{

    7.public:

    8.MyThread();

    9.MyThread(int count);

    10.void run();

    11.private:

    12.int count;

    13.};

    14.#endif//MYTHREAD_H

    1.//mythread.cpp

    2.#include?“mythread.h”

    3.#include“QThread”

    4.#include

    5.MyThread::MyThread()

    6.{

    7.}

    8.MyThread::MyThread(int count)

    9.{

    10.this->count=count;

    11.}

    12.void MyThread::run()

    13.{

    14.while(count<20000)

    15.{

    16.qDebug()<

    17.}

    18.}

    1.//main.cpp

    2.#include

    3.#include?“mythread.h”

    4.#include

    5.int main(int argc,char*argv[])

    6.{

    7.QCoreApplication a(argc,argv);

    8.qDebug()<<“Main Start”;

    9.MyThread myThread1(0);

    10.myThread1.setObjectName(“MyThread1”);

    11.myThread1.start();

    12.MyThread myThread2(0);

    13.myThread2.setObjectName(“MyThread2”);

    14.myThread2.start();

    15.int c=0;

    16.while(c<20000)

    17.{

    18.qDebug()<<“Main Thread”<

    19.}

    20.return a.exec();

    21.}

    在main函數(shù)中我定義了兩個線程,并分別設(shè)置了線程名稱。運行過程中有三個線程會可能同時運行。主函數(shù)線程,myThread1線程,myThread2線程。

    我們可以通過調(diào)用 QObject::moveToThread()來改變QObject對象和線程之前的關(guān)系,它會改變對象本身以及它的孩子與線程之前的關(guān)系。由于QObject不是線程安全的,所以我們必須在它所在的線程中使用;也就是說,你僅僅可以在他們所處的線程中把它移動到另一個線程去,而不能從其他線程中把它從所在的線程中移動過來。而且,Qt要求一個QObject對象的孩子必須和他的父親在同一個線程中,也就是說:如果一個對象有父親,那么不能使用 QObject::moveToThread()把它移動到其他線程;不能在QThread?類中以QThread為父親創(chuàng)建對象。

    面對多線程一個好的辦法是:把“工作”部分從“控制”部分分離出來,創(chuàng)建QObject子類對象,然后使用 QObject::moveToThread()來改 變 對 象 所 在 的 線程。

    例如:

    22.class Worker:public QObject

    23.{

    24.Q_OBJECT

    25.

    26.public slots:

    27.void doWork(){

    28./*...*/

    29.}

    30.};

    31.

    32./*...*/

    33.QThread*thread=new QThread;

    34.Worker*worker=new Worker;

    35.connect(obj,SIGNAL(workReady()),worker,SLOT(doWork()));

    36.worker->moveToThread(thread);

    37.thread->start();

    這是Qt4.7及以后版本推薦的工作方式。其主要特點就是利用Qt的事件驅(qū)動特性,將需要在次線程中處理的業(yè)務(wù)放在獨立的模塊(類)中,由主線程創(chuàng)建完該對象后,將其移交給指定的線程,且可以將多個類似的對象移交給同一個線程。

    2.5 應(yīng)該做&不應(yīng)該做

    可以…

    ●在QThread子類中添加信號。這是很安全的,而且可以“正確工作”(前面提到;發(fā)送者所在線程是無關(guān)緊要的)

    不應(yīng)該…

    ●使用moveToThread(this)

    ●強制連接類型:這通常說明你在做一些錯誤的事情,例如混合了QThread控制接口和程序邏輯(它應(yīng)該在該線程創(chuàng)建的對象中)

    ●在QThread子類中增加槽函數(shù):它們會在 “錯誤的”線程中被調(diào)用,不是在QThread管理的線程中,而是在QThread對象創(chuàng)建的線程,迫使你使用direct connection或使用moveToThread(this)函數(shù)

    ● 使用 QThread::terminate 函數(shù)

    禁止…

    ●在線程還在運行時退出程序。應(yīng)使用 QThread::wait等待線程終止

    ●當(dāng)QThread管理的線程還在運行時,刪除QTread對象。如果你想要“自動析構(gòu)”,你可以將finished()信號連接到deleteLater()槽函數(shù)上

    3 TCP網(wǎng)絡(luò)通訊

    3.1 概念

    [3]Transmission Control Protocol傳輸控制協(xié)議TCP是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的傳輸層(Transport layer)通信協(xié)議,由 IETF的RFC 793說明(specified)。TCP在IP報文的協(xié)議號是6。在簡化的計算機網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能,UDP是同一層內(nèi)另一個重要的傳輸協(xié)議。

    3.2 Qt—tcp

    [4]Qt提供了QTcpSocket類,它將實現(xiàn)TCP傳輸協(xié)議。TCP是一個可靠的面向連接的協(xié)議,它按照網(wǎng)絡(luò)節(jié)點間的數(shù)據(jù)流形式進行操作。這個協(xié)議可以用于創(chuàng)建網(wǎng)絡(luò)客戶端和服務(wù)器應(yīng)用程序。若要創(chuàng)建服務(wù)器應(yīng)用程序,還需要QTcpServer類來處理引用的TCP連接。

    對于服務(wù)器來說,多線程的這個特性太有用了,因為多線程使得服務(wù)器可能同時響應(yīng)多個客戶端的請求,所以現(xiàn)在服務(wù)器大多采用多線程。

    不管是多線程,還是服務(wù)器,QT中已經(jīng)封裝好了特定的類,所以使用起來也很方便。下面建立一個支持多線程、TCP的服務(wù)器。

    首先建立一個服務(wù)器。新建一個類(Server)繼承QT中的QTcpServer類即可。服務(wù)器的職責(zé)是監(jiān)聽端口。當(dāng)監(jiān)聽到有客戶端試圖與服務(wù)器建立連接的時候,分配socket與客戶端連接,再進行數(shù)據(jù)通信。QTcpServer的listen()方法執(zhí)行監(jiān)聽過程,可以指定監(jiān)聽的地址和端口。若給定了QHostAddress類型的監(jiān)聽地址,則監(jiān)聽該地址,否則,監(jiān)聽所有地址;若給定了quint16類型的監(jiān)聽端口,則監(jiān)聽該端口,否則,隨機選定一個監(jiān)聽端口。

    例如:

    if(!tcpServer.listen(QHostAddress::Any,9999)){

    QMessageBox::critical(this,tr("Fortune Server"),

    tr("Unable to start the server:%1.")

    .arg(tcpServer.errorString()));

    close();

    return;

    }

    QString ipAddress;

    QList

    for(int i=0;i

    if(ipAddressesList.at(i)!=QHostAddress::LocalHost&&

    ipAddressesList.at(i).toIPv4Address()){

    ipAddress=ipAddressesList.at(i).toString();

    break;

    }

    }

    if(ipAddress.isEmpty())

    {

    ipAddress=QHostAddress(QHostAddress::LocalHost).toString();

    }

    QTcpServer有一個虛函數(shù)incomingConnection(int socketDescriptor),服務(wù)器每當(dāng)監(jiān)聽到一個客戶端試圖建立連接的時候,會自動調(diào)用這個函數(shù),因此,處理這個請求的過程就可以在這個函數(shù)中,即在子類Server的定義階段,重新定義incomingConnection(int socketDescriptor)這個函數(shù)。

    對于一個多線程的服務(wù)器,每當(dāng)客戶端試圖連接的時候,服務(wù)器應(yīng)該啟動一個線程,負責(zé)對這個客戶端進行服務(wù),所以,incomingConnection()這個函數(shù)所要做的就是建立一個線程,而所建立的線程的作用就是對客戶端進行服務(wù),而這其中建立socket連接是基礎(chǔ)。服務(wù)器在監(jiān)聽到客戶端試圖建立socket連接時,會為此socket分配一個唯一的標識socket-Descriptor,這個標識將在服務(wù)器端建立socket連接時使用,所以應(yīng)提供給每一個線程。QTcpServer只負責(zé)監(jiān)聽,不會通訊。當(dāng)它發(fā)現(xiàn)有連接請求時,他會給出一個socketDescriptor,只要用這個描述符創(chuàng)建一個socket就會連接到對方。

    例如:

    QThread*thread=new QThread();

    readMes*readthread=new readMes(socketDescriptor);

    readthread->moveToThread(thread);

    thread->start();

    m_tcpClient=new QTcpSocket();

    m_tcpClient->setSocketDescriptor(m_socketDescriptor);

    /

    ***********************************************************************/

    void readMes::recevieData()

    {

    qDebug()<

    quint16 i,iSize,iRecLen;

    QString tmp;

    QDataStream in(m_tcpClient);

    in.setVersion(QDataStream::Qt_4_0);

    if(m_tcpClient->bytesAvailable()<(int)sizeof(quint16))return;

    in>>iSize;

    if(m_tcpClient->bytesAvailable()

    m_baRecData.clear();

    m_recStr.clear();

    in>>m_iRecCmd;

    in>>m_iRecFactor;

    in>>m_iRecLen;

    in>>m_recStr;

    if(m_iRecLen!=iRecLen){

    qDebug()<

    return;

    }

    tcpRecFinished(m_iRecCmd);

    }

    /

    ***********************************************************************/

    void readMes::sendDatatoClient(quint16 test1,quint16 test2,quint16 test3,QByteArray &data,quint8 chk)

    {

    QByteArray block;

    QDataStream out(&block,QIODevice::WriteOnly);

    out.setVersion(QDataStream::Qt_4_0);

    out<<(quint16)0;

    out<<(quint16)test1;//test1

    out<<(quint16)test2;//test2

    out<<(quint16)test3;//test3

    out<

    out<<(qint8)chk;

    out.device()->seek(0);

    out<< (quint16)(block.size ()-sizeof(quint16));

    m_tcpClient->write(block);

    m_tcpClient->flush();

    }

    /

    ***********************************************************************/

    void readMes::sendStringtoClient(quint16 test1,quint16 test2,quint16 test3,QStringList¶)

    {

    QByteArray block;

    QDataStream out(&block,QIODevice::WriteOnly);

    out.setVersion(QDataStream::Qt_4_0);

    out<<(quint16)0;

    out<<(quint16)test1;//test1

    out<<(quint16)test2; //test2

    out<<(quint16)test3;//test3

    for(int i=0;i

    out<

    out.device()->seek(0);

    out<< (quint16)(block.size()-sizeof(quint16));

    m_tcpClient->write(block);

    m_tcpClient->flush();

    }

    /

    **********************************************************************/

    可以通過QDataStream向socket中讀取,寫入數(shù)據(jù),達到客戶端和服務(wù)端通訊的目的。為了保證在客戶端能接收到完整的文件,在數(shù)據(jù)流的最開始寫入完整文件的大小信息,這樣客戶端就可以根據(jù)大小信息來判斷是否接收到了完整的文件。同理,客戶端向服務(wù)端發(fā)送數(shù)據(jù)時也要包含文件大小信息,便于服務(wù)器進行讀取。

    3.3 界面

    每一臺機器與服務(wù)器建立連接,就會在服務(wù)器的界面上增加一條記錄。可以通過勾選,對任意一臺機器的文件選擇上傳/下載。原理是:通過TCP服務(wù)器,向客戶端發(fā)送控制命令,客戶端根據(jù)收到的控制命令,啟動一個FTP服務(wù),進而通過FTP進行文件的上傳下載。

    對于造紙工業(yè)而言,我們可以將各個部分的機器的狀態(tài),如:電壓、電流、溫度、濕度等,實時的上傳到服務(wù)器上,服務(wù)器可以直觀的將這些數(shù)據(jù)顯示出來,我們也可以利用這些數(shù)據(jù)對當(dāng)前設(shè)備生產(chǎn)狀況進行分析,通過服務(wù)端更改設(shè)置,將數(shù)據(jù)傳輸?shù)侥骋辉O(shè)備,進而控制該設(shè)備,如:升溫、降溫。體現(xiàn)了友好的人機對話。我們可以通過電腦,掌握所有設(shè)備的實時動態(tài),進而控制設(shè)備,大大提升了工作效率,而且降低了設(shè)備的故障率。通過對數(shù)據(jù)進行更進一步的分析,結(jié)合產(chǎn)量,我們可以得出當(dāng)設(shè)備工作在哪種狀態(tài)下,它的效率是最高的。通過對工藝參數(shù)的更改,進一步提升產(chǎn)品質(zhì)量。

    3.4 心跳機制

    判斷對方(設(shè)備,進程或其它網(wǎng)元)是否正常動行,一般采用定時發(fā)送簡單的通訊包,如果在指定時間段內(nèi)未收到對方響應(yīng),則判斷對方已經(jīng)當(dāng)?shù)簟S糜跈z測TCP的異常斷開。

    這里采用的思路是:客戶端連接上服務(wù)端以后,服務(wù)端維護一個計數(shù)器,客戶端每隔一段時間,向服務(wù)器發(fā)送一個心跳包,服務(wù)器接收到包以后,計數(shù)器的值都會更新為0;一旦服務(wù)端超過規(guī)定時間沒有接收到客戶端發(fā)來的包,計數(shù)器的值將會加1,當(dāng)計數(shù)器的值累計大于等于3,則視為掉線。

    例如:

    maxHeart=0;

    heartBeatNum=0;

    timer=new QTimer(this);

    connect(timer,SIGNAL(timeout()),this,SLOT(receiveHeartBeat()));

    timer->start(5000);

    timer2=new QTimer(this);

    connect(timer2,SIGNAL(timeout()),this,SLOT(heartBeatTest()));

    timer2->start(1000);

    void readMes::receiveHeartBeat()

    {

    if(heartBeatNum>5)

    maxHeart++;

    if(maxHeart>=3)

    {

    timer->stop();

    timer2->stop();

    //

    emit clientMiss(m_socketDescriptor);

    clientMissSLOT();

    }

    }

    void readMes::heartBeatTest()

    {

    heartBeatNum++;

    qDebug()<

    }

    4 結(jié)語

    對于服務(wù)器來說,多線程的這個特性太有用了,因為多線程使得服務(wù)器可以同時響應(yīng)多個客戶端的請求,所以現(xiàn)在服務(wù)器大多采用多線程。程序運行效率的提高,也進一步優(yōu)化了用戶體驗。應(yīng)用于造紙行業(yè),實現(xiàn)了生產(chǎn)過程及生產(chǎn)信息的系統(tǒng)集成、共享、監(jiān)控,提高了公司的生產(chǎn)管理水平;實時監(jiān)測工藝參數(shù)判定信息,加強了質(zhì)量監(jiān)管,實現(xiàn)了全程質(zhì)量管理;對關(guān)鍵生產(chǎn)工藝過程參數(shù)的監(jiān)控和干預(yù),改善和提升產(chǎn)品質(zhì)量;對關(guān)鍵設(shè)備運行狀態(tài)的監(jiān)控和分析,降低設(shè)備事故、提升設(shè)備產(chǎn)能??梢灶A(yù)料,將計算機網(wǎng)絡(luò)技術(shù)和現(xiàn)代控制理論應(yīng)用于造紙工業(yè),將對造紙行業(yè)的發(fā)展起到巨大的推動作用。

    [1]Stanley B.Lippman,Josee Lajoie,Barbara E.Moo.C++Primer[M].北京:人民郵電出版社,2006.

    [2]孫鑫,余安萍.VC++深入詳解 [M].北京:電子工業(yè)出版社,2006.

    [3]Jasmin Blanchette,MarkSummerfield.C++GUI Programming with Qt 4[M].Prentice Hall,2006.

    [4](美)史蒂文斯(W.RichardStevens) 著,范建華等譯.TCP/IP詳解[M].機械工業(yè)出版社,2008.

    猜你喜歡
    服務(wù)端監(jiān)聽線程
    千元監(jiān)聽風(fēng)格Hi-Fi箱新選擇 Summer audio A-401
    云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
    新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
    在Windows Server 2008上創(chuàng)建應(yīng)用
    網(wǎng)絡(luò)監(jiān)聽的防范措施
    電子制作(2017年20期)2017-04-26 06:58:02
    淺談linux多線程協(xié)作
    應(yīng)召反潛時無人機監(jiān)聽航路的規(guī)劃
    局域網(wǎng)監(jiān)聽軟件的設(shè)計
    河南科技(2014年5期)2014-02-27 14:08:21
    Linux線程實現(xiàn)技術(shù)研究
    “鴿子”玩升級 黑你沒商量
    亚洲色图av天堂| 男女下面进入的视频免费午夜| 国产精品久久久久久久久免| 日本欧美国产在线视频| 69av精品久久久久久| 大片免费播放器 马上看| 精品久久久精品久久久| 精品久久久精品久久久| 非洲黑人性xxxx精品又粗又长| 少妇熟女欧美另类| 精品99又大又爽又粗少妇毛片| 国产在线一区二区三区精| 中文字幕久久专区| 少妇熟女aⅴ在线视频| 亚洲天堂国产精品一区在线| 成人欧美大片| 欧美激情国产日韩精品一区| 亚洲,欧美,日韩| 亚洲电影在线观看av| 男女啪啪激烈高潮av片| 欧美bdsm另类| 国产成年人精品一区二区| 国产精品日韩av在线免费观看| 我要看日韩黄色一级片| 国语对白做爰xxxⅹ性视频网站| 乱系列少妇在线播放| 亚洲精品456在线播放app| 亚洲天堂国产精品一区在线| 国产伦一二天堂av在线观看| 九九在线视频观看精品| 神马国产精品三级电影在线观看| 热99在线观看视频| av又黄又爽大尺度在线免费看| 亚洲18禁久久av| 国产亚洲91精品色在线| 国产精品三级大全| 又粗又硬又长又爽又黄的视频| 97在线视频观看| 在线观看美女被高潮喷水网站| 久久精品久久精品一区二区三区| 国产精品久久久久久av不卡| 禁无遮挡网站| 熟女人妻精品中文字幕| 狂野欧美白嫩少妇大欣赏| 干丝袜人妻中文字幕| 亚洲国产精品国产精品| 国产成人freesex在线| 国产亚洲5aaaaa淫片| 国产精品爽爽va在线观看网站| 两个人视频免费观看高清| 18禁在线播放成人免费| 伊人久久精品亚洲午夜| 日韩,欧美,国产一区二区三区| 黄色日韩在线| 精品人妻偷拍中文字幕| 日本色播在线视频| 男女下面进入的视频免费午夜| 久久久成人免费电影| 久久久国产一区二区| 久久精品综合一区二区三区| 我要看日韩黄色一级片| 大片免费播放器 马上看| 能在线免费观看的黄片| 男人狂女人下面高潮的视频| 天堂影院成人在线观看| 久久久精品免费免费高清| 色5月婷婷丁香| 国产精品一区二区在线观看99 | 婷婷色综合大香蕉| 国产高清有码在线观看视频| 中文字幕免费在线视频6| www.av在线官网国产| 日本午夜av视频| 成人午夜高清在线视频| 亚洲天堂国产精品一区在线| 夜夜看夜夜爽夜夜摸| 777米奇影视久久| 男人和女人高潮做爰伦理| 国产成人精品一,二区| 寂寞人妻少妇视频99o| 亚洲av福利一区| 国产精品嫩草影院av在线观看| 天堂网av新在线| 国产免费一级a男人的天堂| 又粗又硬又长又爽又黄的视频| 99九九线精品视频在线观看视频| 又粗又硬又长又爽又黄的视频| 天天一区二区日本电影三级| 中文资源天堂在线| 少妇熟女aⅴ在线视频| 91久久精品电影网| 亚洲乱码一区二区免费版| 久久这里只有精品中国| 麻豆国产97在线/欧美| 国产成人a∨麻豆精品| 大香蕉97超碰在线| 青春草国产在线视频| 色尼玛亚洲综合影院| 欧美变态另类bdsm刘玥| 熟妇人妻久久中文字幕3abv| 永久免费av网站大全| 有码 亚洲区| 韩国av在线不卡| 亚洲无线观看免费| 九九久久精品国产亚洲av麻豆| 好男人视频免费观看在线| videos熟女内射| 国产成人精品久久久久久| 国产男人的电影天堂91| 建设人人有责人人尽责人人享有的 | 亚洲欧美精品自产自拍| 久久久精品欧美日韩精品| 国产亚洲一区二区精品| 美女脱内裤让男人舔精品视频| av又黄又爽大尺度在线免费看| 人妻少妇偷人精品九色| 精品少妇黑人巨大在线播放| 亚洲国产精品专区欧美| 国产精品美女特级片免费视频播放器| 国产一区二区三区综合在线观看 | 亚洲精品,欧美精品| 超碰av人人做人人爽久久| 国产精品久久久久久久久免| 午夜福利在线观看免费完整高清在| 久久精品国产亚洲av涩爱| 亚洲欧美日韩无卡精品| 亚洲婷婷狠狠爱综合网| 国产欧美日韩精品一区二区| 国产真实伦视频高清在线观看| av在线播放精品| 亚洲国产精品国产精品| 亚洲精品日韩在线中文字幕| 六月丁香七月| 国产色婷婷99| 亚洲成人中文字幕在线播放| 国内精品宾馆在线| 一个人看视频在线观看www免费| 男女下面进入的视频免费午夜| 一本久久精品| 日韩一区二区视频免费看| 神马国产精品三级电影在线观看| 成人无遮挡网站| 大又大粗又爽又黄少妇毛片口| 亚洲精品亚洲一区二区| 好男人视频免费观看在线| 午夜精品一区二区三区免费看| freevideosex欧美| 成人无遮挡网站| 亚洲丝袜综合中文字幕| 美女主播在线视频| 亚洲最大成人手机在线| 伊人久久精品亚洲午夜| 久久人人爽人人爽人人片va| 青春草国产在线视频| 免费无遮挡裸体视频| 亚洲av免费在线观看| 欧美xxxx性猛交bbbb| 欧美激情国产日韩精品一区| 国产精品国产三级国产av玫瑰| 午夜爱爱视频在线播放| 人妻制服诱惑在线中文字幕| 久久久国产一区二区| 亚洲一区高清亚洲精品| 人体艺术视频欧美日本| 久久久久久国产a免费观看| 男人狂女人下面高潮的视频| 我的老师免费观看完整版| 狂野欧美激情性xxxx在线观看| 如何舔出高潮| 日本-黄色视频高清免费观看| a级毛片免费高清观看在线播放| 国产精品伦人一区二区| 色综合色国产| 亚洲成人中文字幕在线播放| 美女黄网站色视频| 不卡视频在线观看欧美| 精品不卡国产一区二区三区| 国产午夜精品久久久久久一区二区三区| 国产精品一及| 91久久精品国产一区二区成人| 人妻少妇偷人精品九色| 国产高清三级在线| 精品国产一区二区三区久久久樱花 | 国产 一区精品| av一本久久久久| 一本一本综合久久| av线在线观看网站| 亚洲最大成人中文| 国产黄频视频在线观看| 亚洲av免费高清在线观看| 在线播放无遮挡| 搡女人真爽免费视频火全软件| 国产精品嫩草影院av在线观看| 国产成人一区二区在线| 97超视频在线观看视频| 国产视频内射| 男的添女的下面高潮视频| 搡老妇女老女人老熟妇| 欧美变态另类bdsm刘玥| 一级毛片 在线播放| 少妇熟女欧美另类| 我的老师免费观看完整版| 搡老妇女老女人老熟妇| 精品国内亚洲2022精品成人| 草草在线视频免费看| 简卡轻食公司| 熟女电影av网| 一区二区三区四区激情视频| 亚洲在线观看片| 免费观看a级毛片全部| 国产精品熟女久久久久浪| 高清视频免费观看一区二区 | 国产欧美日韩精品一区二区| 免费电影在线观看免费观看| 久久精品夜色国产| 成年女人在线观看亚洲视频 | 成人特级av手机在线观看| 嫩草影院新地址| 午夜激情福利司机影院| 亚洲丝袜综合中文字幕| 国产av码专区亚洲av| 久久这里只有精品中国| 最近中文字幕高清免费大全6| 天堂俺去俺来也www色官网 | 日日啪夜夜撸| 国产精品日韩av在线免费观看| 欧美xxxx性猛交bbbb| 日韩国内少妇激情av| 久久人人爽人人爽人人片va| 国产亚洲av片在线观看秒播厂 | 国产淫片久久久久久久久| 国产精品一区二区三区四区免费观看| 国产视频首页在线观看| 天堂影院成人在线观看| 国产精品国产三级专区第一集| 能在线免费看毛片的网站| 亚洲无线观看免费| 丰满乱子伦码专区| 精品国内亚洲2022精品成人| 菩萨蛮人人尽说江南好唐韦庄| 久久精品夜色国产| 两个人的视频大全免费| 97热精品久久久久久| 尾随美女入室| 男女边吃奶边做爰视频| 亚洲在线观看片| 最新中文字幕久久久久| 成人二区视频| 午夜福利网站1000一区二区三区| 日韩欧美精品免费久久| 女人久久www免费人成看片| 狂野欧美激情性xxxx在线观看| 老女人水多毛片| 91aial.com中文字幕在线观看| 精品一区二区三区视频在线| 欧美三级亚洲精品| 国产成人a∨麻豆精品| 中国美白少妇内射xxxbb| 亚洲av福利一区| 午夜福利成人在线免费观看| 国产永久视频网站| 亚洲最大成人手机在线| 插逼视频在线观看| 毛片一级片免费看久久久久| 一个人看视频在线观看www免费| 如何舔出高潮| 边亲边吃奶的免费视频| 亚洲欧美清纯卡通| 国产精品一区二区在线观看99 | 久久久精品免费免费高清| 久久久久久久久大av| 免费看av在线观看网站| 亚洲精品,欧美精品| 麻豆成人午夜福利视频| 身体一侧抽搐| 亚洲av免费高清在线观看| 一个人看的www免费观看视频| 乱人视频在线观看| 午夜爱爱视频在线播放| 又爽又黄a免费视频| 国产黄色免费在线视频| 欧美xxxx性猛交bbbb| 日本-黄色视频高清免费观看| 亚洲国产精品成人综合色| 免费av观看视频| 亚洲av福利一区| 久久精品国产鲁丝片午夜精品| 欧美日韩在线观看h| 国产黄色视频一区二区在线观看| 天堂中文最新版在线下载 | 人妻少妇偷人精品九色| 1000部很黄的大片| 丰满少妇做爰视频| 久久鲁丝午夜福利片| 我要看日韩黄色一级片| 国产精品人妻久久久久久| 精品午夜福利在线看| 欧美高清性xxxxhd video| 2021天堂中文幕一二区在线观| 日韩亚洲欧美综合| 大话2 男鬼变身卡| 国内精品宾馆在线| 永久网站在线| 久久午夜福利片| 日本熟妇午夜| 日本av手机在线免费观看| 少妇的逼水好多| av又黄又爽大尺度在线免费看| 国产在线一区二区三区精| 日韩中字成人| 午夜福利成人在线免费观看| 男人舔女人下体高潮全视频| 久久久久久久大尺度免费视频| 国产精品福利在线免费观看| 久久久久性生活片| 神马国产精品三级电影在线观看| 久久人人爽人人片av| 国产精品综合久久久久久久免费| 亚洲精品日本国产第一区| 熟女电影av网| 久久97久久精品| 秋霞伦理黄片| 在线观看一区二区三区| 国产视频首页在线观看| 日韩制服骚丝袜av| 日本爱情动作片www.在线观看| 尤物成人国产欧美一区二区三区| 成年女人看的毛片在线观看| 亚洲熟妇中文字幕五十中出| 国产亚洲一区二区精品| 国产乱人视频| 国产亚洲午夜精品一区二区久久 | 在线免费观看不下载黄p国产| 国产精品一区二区三区四区免费观看| 黑人高潮一二区| 国产高潮美女av| 婷婷色综合www| 亚洲经典国产精华液单| 美女内射精品一级片tv| 人人妻人人澡人人爽人人夜夜 | 久久亚洲国产成人精品v| 男女边吃奶边做爰视频| 少妇的逼水好多| 久久久久久国产a免费观看| 精品国内亚洲2022精品成人| 一级a做视频免费观看| 欧美一级a爱片免费观看看| 色吧在线观看| 国产日韩欧美在线精品| 少妇的逼好多水| 免费观看精品视频网站| 久久久久久国产a免费观看| 一级毛片aaaaaa免费看小| 国产男人的电影天堂91| 国产欧美日韩精品一区二区| 激情五月婷婷亚洲| 欧美高清成人免费视频www| 久久精品综合一区二区三区| 亚洲精品一二三| 狂野欧美激情性xxxx在线观看| 欧美变态另类bdsm刘玥| 亚洲av电影在线观看一区二区三区 | 国产又色又爽无遮挡免| 国产成人免费观看mmmm| 国产视频内射| 国产探花在线观看一区二区| 国产成人a区在线观看| 久久99精品国语久久久| 亚洲最大成人av| 中文字幕制服av| 欧美日韩综合久久久久久| 国产国拍精品亚洲av在线观看| 欧美日韩亚洲高清精品| 边亲边吃奶的免费视频| 日韩av在线大香蕉| 午夜免费男女啪啪视频观看| 亚洲综合色惰| 日本黄色片子视频| 亚洲精品aⅴ在线观看| 中文欧美无线码| 99九九线精品视频在线观看视频| 在线观看人妻少妇| 亚洲欧洲国产日韩| 一级av片app| 精品人妻偷拍中文字幕| 国产片特级美女逼逼视频| 国产一区二区三区综合在线观看 | 亚洲久久久久久中文字幕| 2022亚洲国产成人精品| 国内精品宾馆在线| 色综合色国产| 日本av手机在线免费观看| 午夜精品国产一区二区电影 | 国产女主播在线喷水免费视频网站 | 国产精品一区www在线观看| 国产一区二区三区综合在线观看 | 国产精品不卡视频一区二区| 五月伊人婷婷丁香| 成人av在线播放网站| 成年版毛片免费区| 国产精品爽爽va在线观看网站| 国产 一区 欧美 日韩| 婷婷色麻豆天堂久久| 毛片女人毛片| 成年版毛片免费区| 欧美性猛交╳xxx乱大交人| 久久久久久久亚洲中文字幕| 亚洲怡红院男人天堂| 中文乱码字字幕精品一区二区三区 | 精品一区二区三区人妻视频| 搡老妇女老女人老熟妇| 亚洲经典国产精华液单| 日本一二三区视频观看| 一区二区三区高清视频在线| 韩国高清视频一区二区三区| 看非洲黑人一级黄片| 亚洲av在线观看美女高潮| 亚洲综合色惰| 一级毛片aaaaaa免费看小| av一本久久久久| 麻豆成人av视频| 亚洲aⅴ乱码一区二区在线播放| 亚洲色图av天堂| 街头女战士在线观看网站| 亚洲精品第二区| 日韩欧美精品v在线| 国产精品久久久久久久久免| 久久久久久伊人网av| 国产免费又黄又爽又色| 亚洲精品国产成人久久av| 伦精品一区二区三区| 69人妻影院| 色综合色国产| 99久国产av精品国产电影| 久久热精品热| 免费看av在线观看网站| 菩萨蛮人人尽说江南好唐韦庄| 国产高清三级在线| 国产精品爽爽va在线观看网站| 国产精品99久久久久久久久| 午夜福利在线观看吧| 成年女人看的毛片在线观看| 免费黄色在线免费观看| 亚洲国产精品sss在线观看| 午夜精品国产一区二区电影 | 狂野欧美激情性xxxx在线观看| 特级一级黄色大片| 能在线免费看毛片的网站| av在线蜜桃| 日韩一区二区三区影片| 精品国产三级普通话版| 国产色婷婷99| 亚洲内射少妇av| 夜夜爽夜夜爽视频| 丰满人妻一区二区三区视频av| 男插女下体视频免费在线播放| 日韩 亚洲 欧美在线| 女人久久www免费人成看片| 男女国产视频网站| 国产大屁股一区二区在线视频| 亚洲成人中文字幕在线播放| 国产中年淑女户外野战色| av.在线天堂| 卡戴珊不雅视频在线播放| 久久久久久久久久成人| 又粗又硬又长又爽又黄的视频| 亚洲国产精品国产精品| 精品久久久久久久久亚洲| 国产精品国产三级国产专区5o| 人妻夜夜爽99麻豆av| 午夜老司机福利剧场| 国产午夜精品论理片| 国产亚洲最大av| 伊人久久国产一区二区| 久久精品久久久久久噜噜老黄| 成人鲁丝片一二三区免费| 久久99精品国语久久久| 三级毛片av免费| av国产免费在线观看| videos熟女内射| 久久久久久久午夜电影| 色综合色国产| av女优亚洲男人天堂| 街头女战士在线观看网站| 亚洲国产精品国产精品| a级毛片免费高清观看在线播放| 人妻制服诱惑在线中文字幕| 午夜精品在线福利| 深夜a级毛片| 国产大屁股一区二区在线视频| 激情五月婷婷亚洲| 国产黄片美女视频| 亚洲欧美一区二区三区国产| 男女下面进入的视频免费午夜| 天堂网av新在线| 一级毛片久久久久久久久女| 在线a可以看的网站| 久久久久精品性色| 欧美bdsm另类| 一级毛片aaaaaa免费看小| 亚洲精品久久午夜乱码| 亚洲欧美精品自产自拍| 婷婷色av中文字幕| 黑人高潮一二区| 亚洲无线观看免费| 亚洲精品国产av成人精品| 亚洲av中文av极速乱| 日本三级黄在线观看| 国产精品三级大全| 女人久久www免费人成看片| 国产老妇伦熟女老妇高清| 日本与韩国留学比较| 午夜久久久久精精品| 亚洲最大成人av| av天堂中文字幕网| 最近2019中文字幕mv第一页| 精品国产三级普通话版| 成人午夜精彩视频在线观看| 天天躁日日操中文字幕| 国内少妇人妻偷人精品xxx网站| 久久久久久久大尺度免费视频| 久久这里只有精品中国| 国产乱人偷精品视频| 一级毛片 在线播放| 婷婷色综合www| 久久精品国产鲁丝片午夜精品| 国产一区二区在线观看日韩| 在线 av 中文字幕| 午夜福利在线观看免费完整高清在| 春色校园在线视频观看| 国产男女超爽视频在线观看| av卡一久久| 国产成人精品福利久久| 亚洲国产精品成人综合色| 国产白丝娇喘喷水9色精品| 午夜福利在线观看吧| 九九在线视频观看精品| 亚洲欧美清纯卡通| 国产一级毛片七仙女欲春2| 麻豆成人午夜福利视频| 日韩av不卡免费在线播放| 免费黄色在线免费观看| 街头女战士在线观看网站| 欧美丝袜亚洲另类| 插逼视频在线观看| 日韩av在线大香蕉| 老司机影院毛片| 少妇猛男粗大的猛烈进出视频 | 亚洲欧美成人精品一区二区| 国模一区二区三区四区视频| 久久99精品国语久久久| av在线老鸭窝| 国产黄片视频在线免费观看| 日韩欧美 国产精品| 欧美日韩亚洲高清精品| 夫妻午夜视频| 国产精品一区二区在线观看99 | 纵有疾风起免费观看全集完整版 | 亚洲国产精品sss在线观看| 午夜精品一区二区三区免费看| av在线播放精品| 久久久久久九九精品二区国产| 别揉我奶头 嗯啊视频| 我要看日韩黄色一级片| 天堂中文最新版在线下载 | 精品一区二区三卡| 91久久精品国产一区二区成人| 久久久亚洲精品成人影院| 亚洲精品乱码久久久v下载方式| 91久久精品国产一区二区三区| 亚洲成人av在线免费| 日本黄色片子视频| 又粗又硬又长又爽又黄的视频| 少妇高潮的动态图| 99热6这里只有精品| 日韩大片免费观看网站| 精品少妇黑人巨大在线播放| av女优亚洲男人天堂| 国产伦精品一区二区三区视频9| 国产亚洲精品av在线| 日本欧美国产在线视频| 婷婷色综合大香蕉| 国产在线男女| 午夜老司机福利剧场| 亚洲国产精品sss在线观看| 亚洲丝袜综合中文字幕| 国模一区二区三区四区视频| 深夜a级毛片| 秋霞伦理黄片| 国语对白做爰xxxⅹ性视频网站| 国产真实伦视频高清在线观看| 成年女人在线观看亚洲视频 | 免费黄频网站在线观看国产| 最近中文字幕高清免费大全6| 中文字幕av成人在线电影| videos熟女内射| 日日干狠狠操夜夜爽| 日韩av不卡免费在线播放| av在线蜜桃| 欧美高清性xxxxhd video| 中国国产av一级| 精品一区二区三区人妻视频| 亚洲图色成人| 国产黄色小视频在线观看| 日韩av不卡免费在线播放| 男女那种视频在线观看| 卡戴珊不雅视频在线播放| 亚洲精品,欧美精品| 日韩电影二区| 好男人视频免费观看在线| 国产真实伦视频高清在线观看| 国产激情偷乱视频一区二区| 亚洲欧美清纯卡通| 久久久久精品久久久久真实原创| 日韩成人伦理影院|