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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

多线程和MsgWaitForMultipleObjects

發布時間:2025/3/12 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多线程和MsgWaitForMultipleObjects 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在主線程中慎用WaitForSingleObject?(WaitForMultipleObjects)

下面的代碼我調試了將近一個星期,你能夠看出什么地方出了問題嗎?
線程函數:

DWORD?WINAPI?ThreadProc(

????while(!bTerminate)

????{

????????//?從一個鏈表中讀取信息并且插入到CListCtrl

????????//?CListCtrl的句柄是通過線程參數傳遞進來的

????????for(;;)

???????{

???????????ReadInfoFromList();

???????????InsertToCListCtrl();

????????}

????}

}

主線程中使用CreateThread啟動線程。

?

當想終止子線程時,在主線程中:

bTerminate?=?TRUE;

WaitForSingleObject(threadHandle,?INFINITE);

可是,以運行到WaitForSingleObject,子線程就Crash了。

?

為什么呢?

?

問題原因:

后來我終于在InsertItem的反匯編中發現了如下的代碼

call?dword?ptr?[__imp__SendMessageA@16?(7C141B54h)]

可見,InsertItem是必須借助消息循環來完成任務的。如果我們在主線程中WaitForSingleObject了,必然導致主線程阻塞,也就導致了消息循環的阻塞,最終導致工作線程Crash掉了*_*

?

解決方案:

為了解決在主線程中Wait的問題,微軟專門設計了一個函數MsgWaitForMultipleObjects,這個函數即可以等待信號(thread,event,mutex等等),也可以等待消息(MSG)。即不論有信號被激發或者有消息到來,此函數都可以返回。呵呵,那么我的解決辦法也就出來了。

將上面的WaitForSingleObject用下面的代碼替換:

?

while(TRUE)

{

?

????DWORD?result?;?

????MSG?msg?;?

?

????result?=?MsgWaitForMultipleObjects(1,?&readThreadHandle,?

????????FALSE,?INFINITE,?QS_ALLINPUT);?

?

????if?(result?==?(WAIT_OBJECT_0))

????{

????????break;

????}?

????else?

????{?

????????PeekMessage(&msg,?NULL,?0,?0,?PM_REMOVE);

????????DispatchMessage(&msg);?

????}?

}

?

總結:

如果在工作線程中有可能涉及到了消息驅動的API,那么不能在主線程中使用WaitForSingleObject一類函數,而必須使用上述的方案

?

線程函數的設計以及MsgWaitForMultipleObjects函數的使用要點

使用多線程技術可以顯著地提高程序性能,本文就講講在程序中如何使用工作線程,以及工作線程與主線程通訊的問題。

一?創建線程

???????使用MFC提供的全局函數AfxBeginThread()即可創建一個工作線程。線程函數的標準形式為?UINT?MyFunProc(LPVOID?);此函數既可以是全局函數,也可以是類的靜態成員函數。之所以必須是靜態成員函數,是由于類的非靜態成員函數,編譯器在編譯時會自動加上一個this指針參數,如果將函數設置為靜態的成員函數,則可以消除this指針參數。如果想在線程函數中任意調用類的成員變量(此處指的是數據成員,而不是控件關聯的成員變量),則可以將類的指針作為參數傳遞給線程函數,然后經由該指針,就可以調用類的成員變量了。

?

//線程函數,類的靜態成員函數

UINT?CThreadTest::TH_SetProgress(LPVOID?lpVoid)

{

???????CThreadTest?*pTest=(CThreadTest?*)lpVoid;

???????pTest->SetProgress();

???????return?0;

}

?

//類的成員函數,此函數執行實際的線程函數操作,卻可以自如的調用成員數據

void?CThreadTest::SetProgress()

{

int?nCount=0;

???????while?(1)

???????{

??????????????m_progress.SetPos(nCount);?//設置進度條進度

//????????????this->SendMessage(WM_SETPROGRESSPOS,nCount,0);//也可以采用這種方式設置

??????????????nCount++;

??????????????if?(g_exitThread)

??????????????{

?????????????????????return;

??????????????}

??????????????Sleep(200);

???????}

}

?

二?線程函數體的設計

有過多線程設計經驗的人都有體會,多線程設計最重要的就是要處理好線程間的同步和通訊問題。如解決不好這個問題,會給程序帶來潛藏的隱患。線程的同步可以利用臨界區、事件、互斥體和信號量來實現,線程間的通訊可利用全局變量和發消息的形式實現。其中事件和臨界區是使用得比較多的工具。請看下面的線程函數體:

UINT?AnalyseProc(LPVOID???lVOID)

{

???????if(WAIT_OBJECT_0==?WaitForSingleObject(m_eventStartAnalyse.m_hThread,INFINITE))

???????{

??????????????while?(WAIT_OBJECT_0?==?WaitForSingleObject(m_eventExitAnalyse.m_hThread,0))

??????????????{

?????????????????????DWORD?dRet=WaitForSingleObject(m_eventPause.m_hThread,0);

?????????????????????if?(dRet?==?WAIT_OBJECT_0)

?????????????????????{

????????????????????????????//暫停分析

????????????????????????????Sleep(10);

?????????????????????}

?????????????????????else?if?(dRet?==?WAIT_TIMEOUT)

?????????????????????{

????????????????????????????//繼續分析

????????????????????????????//

?????????????????????}

??????????????}

???????}

???????return?0;

}

上面的線程函數用到了三個事件變量eventStartAnalyseeventExitAnalyseeventPause,分別用來控制線程函數的啟動、退出以及暫停。再配以WaitForSingleObject函數,就可以自如的控制線程函數的執行,這是在線程函數體內應用事件變量的典型方式,也是推薦的方式

?

無論是工作線程還是用戶界面線程,都有消息隊列,都可以接收別的線程發過來的消息也可以給別的線程發送消息。給工作線程發消息使用的函數是PostThreadMessage()此函數的第一個參數是接收消息的線程的ID。此函數是異步執行的,機制和PostMessage一樣,就是把消息拋出后就立即返回,不理會消息是否被處理完了。

?

這里還有著重強調一點,線程消息隊列是操作系統幫我們維護的一種資源,所以它的容量也是有限制的。筆者曾經做過實驗,在5~6秒事件內調用PostThreadMessage往線程消息隊列里發送5萬多條消息,可是由于線程函數處理消息的速度遠慢于發送速度,結果導致線程消息隊列里已經堆滿了消息,而發送端還在發消息,最終導致消息隊列溢出,很多消息都丟失了。所以,如果你要在短時間內往線程消息隊列里發送很多條消息,那就要判斷一下PostThreadMessage函數的返回值。當消息隊列已經溢出時,此函數返回一個錯誤值。根據返回值,你就可以控制是否繼續發送。

?

工作線程給主線程發消息使用的是SendMessagePoseMessage函數。這兩個函數的區別在于SendMessage函數是阻塞方式,而PoseMessage函數是非阻塞方式。如果不是嚴格要求工作線程與主線程必須同步執行,則推薦使用PoseMessage。不要在線程函數體內操作MFC控件,因為每個線程都有自己的線程模塊狀態映射表,在一個線程中操作另一個線程中創建的MFC對象,會帶來意想不到的問題。更不要在線程函數里,直接調用UpdataData()函數更新用戶界面,這會導致程序直接crash。而應該通過發送消息給主線程的方式,在主線程的消息響應函數里操作控件。上面提到的SetProgress函數和AnalyseProc函數均為線程函數,但它們都不能接收別的線程發過來的消息,雖然它們都可以給主線程發消息。它們要想能夠接收別的線程發過來的消息,則必須調用GetMessagePeekMessage函數。這兩個函數的主要區別在于:

?

GetMessage函數可以從消息隊列中抓取消息,當抓取到消息后,GetMessage函數會將此條消息從消息隊列中刪除。而且,如果消息隊列中沒有消息,則GetMessage函數不會返回,CPU轉而回去執行別的線程,釋放控制權。GetMessage返回的條件是抓取的消息是WM_QUIT

?

PeekMessage函數也可以從消息隊列中抓取消息,如果它的最后一個參數設置為PM_NOREMOVE,則不從消息隊列中刪除此條消息,此條消息會一直保留在消息隊列中。如果它的最后一個參數是PM_REMOVE,則會刪除此條消息。如果消息隊列中沒有消息,則PeekMessage函數會立刻返回,而不是像GetMessage一樣就那樣等在那兒。PeekMessage函數就像是窺探一下消息隊列,看看有沒有消息,有的話就處理,沒有就離開了。這一點也是兩個函數的最大不同。下面的代碼演示了在線程函數中使用這兩個函數的三種方式,這三種方法可以達到同樣的效果:

?

void?CThreadTest::SetSlider()

{

//?在線程函數里啟動一個時鐘,每50毫秒發送一個WM_TIMER消息

???????int?nTimerID=::SetTimer(NULL,1,50,NULL);

???????int?nSliderPos=0;

???????MSG?msg;

???????while?(1)

???????{

//方式一????使用GetMessage函數??

/*???????????if?(::GetMessage(&msg,NULL,0,0))

??????????????{

?????????????????????switch(msg.message)

?????????????????????{

?????????????????????case?WM_TIMER:

????????????????????????????{

???????????????????????????????????nSliderPos++;

?????????????????????????::SendMessage(this->m_hWnd,WM_SETSLIDERPOS,nSliderPos,0);

????????????????????????????}?????????????????????????

????????????????????????????break;

?

?????????????????????case?WM_QUIT_THREAD:?//自定義消息

????????????????????????????{

???????????????????????????????????::KillTimer(NULL,1);

???????????????????????????????????return;

????????????????????????????}??????????????????

?????????????????????????break;

?????????????????????default:

?????????????????????????break;

?????????????????????}

??????????????}????

?*/

?

//方式二???使用PeekMessage函數??

/*???????????if?(::PeekMessage(&msg,NULL,0,0,PM_REMOVE))

??????????????{

?????????????????????switch(msg.message)

?????????????????????{

?????????????????????case?WM_TIMER:

????????????????????????????{

???????????????????????????????????nSliderPos++;

???????????????????????????????????::SendMessage(this->m_hWnd,WM_SETSLIDERPOS,nSliderPos,0);

????????????????????????????}?????????????????????????

????????????????????????????break;

?????????????????????case?WM_QUIT_THREAD:?//自定義消息

????????????????????????????{

???????????????????????????????????::KillTimer(NULL,1);

???????????????????????????????????return;

????????????????????????????}??????????????????

?????????????????????????break;

?????????????????????default:

?????????????????????????break;

?????????????????????}

??????????????}

??????????????else

??????????????{

???????????????????????//必須有此操作,要不然當沒有消息到來時,線程函數相當于陷入空循環,cpu的占有率會飆升

?????????????????????Sleep(20);

??????????????}

?

*/

?

//方式三???同時使用PeekMessageGetMessage函數??

??????????????if?(::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))

??????????????{

?????????????????????if(::GetMessage(&msg,NULL,0,0))

?????????????????????{

????????????????????????????switch(msg.message)

????????????????????????????{

??????????????????????????case?WM_TIMER:

???????????????????????????????????{

??????????????????????????????????????????nSliderPos++;?

::SendMessage(this->m_hWnd,WM_SETSLIDERPOS,nSliderPos,0);

???????????????????????????????????}?????????????????????????

??????????????????????????????????break;

????????????????????????????case?WM_QUIT_THREAD:?//自定義消息

???????????????????????????????????{

??????????????????????????????????????????::KillTimer(NULL,1);

??????????????????????????????????????????return;

???????????????????????????????????}??????????????????

???????????????????????????????????break;

????????????????????????????default:

???????????????????????????????????break;

????????????????????????????}

?????????????????????}

??????????????}

??????????????else

??????????????{

?????????????????????Sleep(20);

??????????????}

???????}

?

}

?

前面已經介紹過了,不建議線程函數里用SendMessage給主線程發消息,因為這個函數是同步操作,就是如果SendMessage函數不執行完,是不會返回的,這樣線程函數就無法繼續執行。有時這種操作容易導致工作線程和主線程死鎖,這個我們后面會談到,會介紹一種解決方法。

?

三?線程的退出

線程的退出有多種方式,比如可以調用TerminateThread()函數強制線程退出,但不推薦這種方式,因為這樣做會導致線程中的資源來不及釋放。最好的也是推薦的方式,是讓線程函數自己退出。就像上面介紹的SetProgress()函數中,用全局變量g_exitThread使線程退出。

?

AnalyseProcWAIT_OBJECT_0?==WaitForSingleObject(m_eventExitAnalyse.m_hThread,0)這種方式來退出線程,還有在SetSlider函數中利用發送自定義消息WM_QUIT_THREAD的方式令線程退出。這些都是可以使用的方法。

?

???????當主線程要退出時,為了能保證線程的資源能全部地釋放,主線程必須等待工作線程退出。線程對象和進程對象一樣,也是內核對象,而且線程對象的特點是當線程退出時,線程內核對象會自動變為有信號狀態,能夠喚醒所有正在等待它的線程。我們通常都習慣于使用WaitForSingleObject等函數來等待某個內核對象變為有信號狀態,但是我想說的是,在主線程中不要使用WaitForSingleObjectWaitForMultipleObjects兩個函數等待線程退出,其原因就是有導致程序死鎖的隱患,特別是線程函數里調用了SendMessage或是直接操作了MFC對象,更易出現此種現象。下面的函數是一個在主線程中用來等待SetProgress()線程函數退出的函數:

?

//退出線程

void?CThreadTest::OnButton2()

{

???????g_exitThread=TRUE;?//設置全局變量為真,令線程退出

#if?1

???????WaitForSingleObject(m_pThread1->m_hThread,INFINITE);?//無限等待

#else

???????DWORD?dRet;

???????MSG?msg;

???????while?(1)

???????{

??????????????dRet=::MsgWaitForMultipleObjects(1,&m_pThread1->m_hThread,FALSE,INFINITE,QS_ALLINPUT);

??????????????if?(dRet?==?WAIT_OBJECT_0+1)

??????????????{

?????????????????????while?(PeekMessage(&msg,NULL,0,0,PM_REMOVE))

?????????????????????{

????????????????????????????TranslateMessage(&msg);

????????????????????????????DispatchMessage(&msg);

?????????????????????}

??????????????}

??????????????else

??????????????{

?????????????????????break;

??????????????}

???????}?????

#endif????

}

?

在上面的函數中我用#if?#else?#endif這組預編譯指令控制函數的執行代碼,如果我令#if?1,則執行WaitForSingleObject函數,如果我令#if?0,則執行DWORD?dRet路徑。首先令#if??1,測試會發現,程序死鎖了。原因是當程序執行到WaitForSingleObject函數時,主線程掛起,等待線程函數退出,此時CPU切換到線程函數體內執行,如果執行到if?(g_exitThread)處,則線程函數順利退出,可如果執行到m_progress.SetPos(nCount)處,由于SetPos函數是在主線程中完成的操作,Windows是基于消息的操作系統,很多操作都是靠發消息完成的,由于主線程已經掛起,所以沒有機會去消息隊列中抓取消息并處理它,結果導致SetPos函數不會返回,工作線程也被掛起,典型的死鎖。如果不用m_progress.SetPos,而改用this->SendMessage(),其結果是一樣的。此時如果用了PostMessage,則工作線程會順利退出,因為PostMessage是異步執行的。由此可見,在主線程中用WaitForSingleObject等待工作線程退出是有很大隱患的。

?

???????為解決這一問題,微軟特提供了一個MsgWaitForMultipleObjects函數,該函數的特點是它不但可以等待內核對象,還可以等消息。也就是當有消息到來時,該函數也一樣可以返回,并處理消息,這樣就給了工作線程退出的機會。

?

DWORD?MsgWaitForMultipleObjects(

DWORD?nCount,?//要等待的內核對象數目

LPHANDLE?pHandles,?//要等待的內核對象句柄數組指針

BOOL?fWaitAll,?//是等待全部對象還是單個對象

DWORD?dwMilliseconds,//等待時間?

DWORD?dwWakeMask?);//等待的消息類型

?

下面就詳解一下該函數的參數使用方法:

DWORD?nCount:要等待的內核對象的數目。如果等待兩個線程退出,則nCount=2

LPHANDLE?pHandles:要等待的內核對象句柄數組指針。

?

如果只要等待一個線程退出,則直接設置該線程句柄的指針即可:

MsgWaitForMultipleObjects(1,&m_pThread->m_hThread,…)

?

如果要等待兩個線程退出,則使用方法為:

HANDLE?hArray[2]={?m_pThread1->m_hThread?,?m_pThread2->m_hThread?}

MsgWaitForMultipleObjects(2,hArray,…)

?

BOOL?fWaitAll:?TRUE-表示只有要等待的線程全部退出后,此函數才返回,

???????????????FALSE-表示要等待的線程中任意一個退出了,或是有消息到達了,此函數均會返回。

在上面的OnButton2()函數中,我要等待一個線程退出,將fWaitAll設置為

FALSE,目的是無論是線程真的退出了,還是有消息到達了,該函數都能返回。

如果將該fWaitAll設置為TRUE,那么函數返回的唯一條件是線程退出了,即便

是有消息到來了,該函數也一樣不會返回。

?

DWORD?dwMilliseconds:等待的事件,單位是毫秒。可以設置為INFINITE,無

窮等待

?

DWORD?dwWakeMask:等待的消息類型,通常可以設置為QS_ALLINPUT。此宏表示的是可以等待任意類型的消息。當然,也可以指定等待的消息類型。

?

#define?QS_ALLINPUT????????(QS_INPUT?????????|?\

????????????????????????????QS_POSTMESSAGE???|?\

????????????????????????????QS_TIMER?????????|?\

????????????????????????????QS_PAINT?????????|?\

????????????????????????????QS_HOTKEY????????|?\

????????????????????????????QS_SENDMESSAGE)

?

返回值:DWORD?dRet?通過函數返回值,可以得到一些有效信息。函數返回值依fWaitAll設置的不同而有所不同。下面是函數返回值的幾種常見類型:

?

dRet?=?0xFFFFFFFF?:???表示函數調用失敗,可用GetLastError()得到具體的出錯信息;

?

dRet?=WAIT_OBJECT_0+nCount:表示有消息到達了;

?

?

?

如果fWaitAll設置為TRUE

?

dRet?=?WAIT_OBJECT_0,表示所有等待的核心對象都激發了,或是線程都退出了;

?

如果fWaitAll設置為FALSE

?

dRet?=?WAIT_OBJECT_0?~?WAIT_OBJECT_0+nCount-1:表示等待的內核對象被激發了,index=dRet?-?WAIT_OBJECT_0,表示hArray[]數組中索引為index的那個對象被激發了。

?

?

?

當函數由于消息到來而返回,則需要用戶主動去消息隊列中將消息抓取出來,然后派發出去,這樣該消息就會被處理了。其具體的操作就是:

?

while?(PeekMessage(&msg,NULL,0,0,PM_REMOVE))

?

{

?

???????TranslateMessage(&msg);

?

???????DispatchMessage(&msg);

?

}

?

?

?

下面再看一個用這個函數等待兩個線程退出的例子:

?

//關閉線程12

?

void?CThreadTest::OnButton6()

?

{

?

???????…

?

???????…

?

???????DWORD?dRet=-2;

?

???????HANDLE?hArray[2];?

?

??????

?

???????hArray[0]=m_pThread1->m_hThread;

?

???????hArray[1]=m_pThread2->m_hThread;

?

?

?

???????MSG?msg;

?

?

?

???????int?nExitThreadCount=0;???????//標記已經有幾個線程退出了

?

???????BOOL?bWaitAll=FALSE;

?

???????int?nWaitCount=2;????//初始等待的線程數目

?

?

?

???????while?(1)

?

???????{

?

??????????????dRet=MsgWaitForMultipleObjects(nWaitCount,hArray,bWaitAll,INFINITE,QS_ALLINPUT);

?

??????????????if?(dRet?==?WAIT_OBJECT_0+?nWaitCount)

?

??????????????{

?

?????????????????????TRACE("收到消息,函數返回值為%d?\n",dRet);

?

?????????????????????while?(PeekMessage(&msg,NULL,0,0,PM_REMOVE))

?

?????????????????????{

?

????????????????????????????TranslateMessage(&msg);

?

????????????????????????????DispatchMessage(&msg);

?

?????????????????????}

?

????????????????????

?

??????????????}

?

??????????????else?if?(dRet?>=?WAIT_OBJECT_0?&&?dRet?<?WAIT_OBJECT_0+?nWaitCount)

?

??????????????{

?

?????????????????????nExitThreadCount++;

?

?????????????????????if?(nExitThreadCount?==?1)

?

?????????????????????{

?

????????????????????????????TRACE("一個線程退出了\n");

?

????????????????????????????int?nIndex=dRet-WAIT_OBJECT_0;

?

????????????????????????????hArray[nIndex]=hArray[nWaitCount-1];

?

????????????????????????????hArray[nWaitCount-1]=NULL;

?

????????????????????????????nWaitCount--;

?

?

?

?????????????????????}

?

?????????????????????else

?

?????????????????????{

?

????????????????????????????TRACE("兩個線程都退出了\n");

?

????????????????????????????break;

?

?????????????????????}

?

??????????????}

?

??????????????else

?

??????????????{

?

?????????????????????DWORD?dErrCode=GetLastError();

?

?????????????????????…

?

?????????????????????break;

?

??????????????}

?

???????}

?

??????

?

}

?

?

?

在上面這個例子中,我將bWaitAll設置為FALSE,目的是當我要等待的兩個線程中由一個退出了,或是有消息到來了,此函數都可以退出。如果我將此參數設置為TRUE,那么,當且僅當我要等待的兩個線程均退出了,這個函數才會返回,這種使用方法有是程序陷入死鎖的危險,故應避免。無論是等待一個還是多個線程,只需將此參數設置為FALSE即可,然后通過函數返回值判斷究竟是那個返回了,還是消息到達了即可。這一要點前面已有陳述,此處再強調一遍。

?

通過函數返回值可以得知究竟哪個線程退出了,當要等待的兩個線程中的一個已經退出后,則應該從新設置等待函數的參數,對等待的句柄數組進行整理。

?

{

?

int?nIndex=dRet-WAIT_OBJECT_0;

?

hArray[nIndex]=hArray[nWaitCount-1];

?

hArray[nWaitCount-1]=NULL;

?

nWaitCount--;

?

}

這組語句就是用來從新設置參數的,其過程就是將等待的總數目減一,并將剛退出的線程的句柄設置為NULL,移到數組的最末位置。

?

上面介紹了線程函數的設計以及在主線程中等待工作線程退出的方法,著重介紹了MsgWaitForMultipleObjects函數的使用要點,希望對大家有所幫助,也希望大家能提寶貴意見,補我之不足,愿與大家共同進步。\

?

?

總結

以上是生活随笔為你收集整理的多线程和MsgWaitForMultipleObjects的全部內容,希望文章能夠幫你解決所遇到的問題。

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

日韩一区精品 | 在线高清一区 | 91超在线| 婷婷四房综合激情五月 | 在线直播av | 国产日产精品一区二区三区四区 | 手机av电影在线 | 亚洲一级电影 | 色狠狠久久av五月综合 | 国产精品美乳一区二区免费 | 久久久久网址 | 狠狠做深爱婷婷综合一区 | 成人三级网站在线观看 | 91麻豆文化传媒在线观看 | 成人黄视频 | 久草.com| 国产精品久久久久久久久久久久久久 | 久久午夜视频 | 久久婷婷丁香 | 手机av观看| 美女网色 | 色婷婷五 | 久久精品国产成人 | 久久综合一本 | va视频在线观看 | 亚洲日韩欧美一区二区在线 | 国产一区二区三区网站 | 国产免费影院 | 亚洲国产字幕 | 国产 日韩 中文字幕 | av一区二区三区在线观看 | 高清视频一区二区三区 | 一区二区精品视频 | av软件在线观看 | 日韩高清网站 | 午夜性福利 | 91精品人成在线观看 | 亚洲精品动漫成人3d无尽在线 | 国产午夜亚洲精品 | 久热爱| 免费观看十分钟 | 97在线观看免费观看高清 | 中文字幕在线观看视频一区 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 色视频网站在线 | 亚洲国产丝袜在线观看 | 99精品视频免费 | 亚洲成a人片在线观看网站口工 | 日韩精品久久一区二区 | 天天射天天干天天操 | 久久官网| 久久国产精品99久久久久久丝袜 | 蜜臀久久99精品久久久酒店新书 | 日韩久久精品一区二区三区 | 国产96av| 国产精品一区专区欧美日韩 | 国产精品久久久久久久久久久久 | 亚洲精品视频免费 | 中文字幕在线成人 | 开心婷婷色| 天天玩天天干 | 国产精久久久久久妇女av | 色综合久久久久久久 | www视频在线免费观看 | 免费在线成人av电影 | 99re久久资源最新地址 | 91网址在线 | 天堂av网址| 精品国产一区二区三区免费 | 久久午夜网 | 99久久精品免费看国产四区 | 狠狠色狠狠色综合系列 | 久99久视频 | 91大神免费视频 | 91在线视频观看免费 | 视频在线观看国产 | 在线观看亚洲专区 | 久久久久久97三级 | 久久观看免费视频 | 色人久久 | 超碰在线1 | 国产成年免费视频 | 婷婷播播网 | 日韩精品久久一区二区 | 少妇精69xxtheporn | 久久1区 | 久久免费精品国产 | 国产91探花 | 久久久国产精品视频 | 精品国产乱码久久久久 | 久久久久久久久久免费 | 又色又爽又黄高潮的免费视频 | 亚洲成人av片 | 久久黄视频 | 中文字幕高清免费日韩视频在线 | 天天爱天天射天天干天天 | 麻豆va一区二区三区久久浪 | 狠狠综合网 | 国产精品一区二区 91 | 美女久久视频 | 日日干日日色 | 免费观看一级一片 | 欧产日产国产69 | 一区二区三区精品在线视频 | 国产在线国偷精品产拍 | 午夜私人影院久久久久 | 久久国产精品视频 | 国产免费一区二区三区网站免费 | 国产精品2018 | 国产精品成人免费一区久久羞羞 | 在线黄色毛片 | 国产黄色片免费 | 2019中文字幕第一页 | 天天搞天天干天天色 | 中文字幕人成不卡一区 | 婷婷六月天在线 | 国产精品永久 | www色,com | 欧美男男tv网站 | 一区二区三区在线观看免费视频 | 亚洲成av人影院 | 精品黄色在线观看 | 中文字幕在线观看网址 | 99精品国自产在线 | 久久国产精品小视频 | 免费在线观看污 | 久草在线视频中文 | 亚洲天堂网视频在线观看 | 91亚洲夫妻 | 99热日本| 国产黄色片一级三级 | 日日干视频 | 久久精品亚洲一区二区三区观看模式 | 在线看黄网站 | 国产一区自拍视频 | 欧美久久久久久久久久 | 一级欧美黄 | 国产亚洲欧美一区 | 97超碰人人澡 | 精品亚洲va在线va天堂资源站 | 亚洲va综合va国产va中文 | 亚洲国产99| 国产精品成人av在线 | 激情综合婷婷 | 香蕉影院在线播放 | 丁香国产视频 | 中文字幕日韩有码 | 日日夜操 | 色婷婷综合成人av | 玖玖视频 | 丁香久久 | 日韩av手机在线观看 | 久久99精品久久只有精品 | 婷婷综合 | 亚洲国产一二三 | 日本中文字幕在线电影 | 亚洲国内精品在线 | 伊人黄色网 | 婷婷六月久久 | 日韩精品一区二区三区高清免费 | 丝袜av网站 | 午夜婷婷在线观看 | 成人午夜电影在线播放 | 在线观看91久久久久久 | 国内外激情视频 | 欧美精品在线观看免费 | 亚洲精品99| 国产国语在线 | 精品视频在线免费观看 | 看污网站 | 视频国产在线 | 免费麻豆| av电影在线观看完整版一区二区 | 久久黄色影院 | 日韩中文字幕免费在线播放 | 久久综合在线 | 国产一区二区精品 | 免费欧美高清视频 | 波多野结衣在线中文字幕 | 天天曰天天干 | 精品欧美一区二区三区久久久 | 97超碰资源 | 国产成人黄色片 | 999久久久久久久久6666 | 亚洲精品午夜久久久久久久久久久 | 99精品亚洲| av在线看片 | 91精品黄色 | a黄色 | 国产精品av一区二区 | 日韩欧美一区二区三区在线 | 亚洲视频1区2区 | 久久久精品一区二区三区 | 日日爱影视 | 91污污视频在线观看 | 成人毛片一区二区三区 | 久久久精品| 欧美性生活免费 | 波多野结衣视频一区二区三区 | 久草视频在线免费看 | 在线小视频国产 | 91九色蝌蚪视频 | 日韩欧美一级二级 | 一级黄色免费网站 | 欧美性色综合网站 | 久久久九九 | 欧美视频二区 | 操高跟美女 | 亚洲九九九在线观看 | 国产免费影院 | 欧美日本国产在线观看 | 色天天久久 | 亚洲午夜久久久久久久久 | 91精品久久久久久综合乱菊 | 国产字幕av | 91日本在线播放 | 在线看国产视频 | 久久久久女教师免费一区 | 久久久精品福利视频 | 欧美精品久久久久久久久久丰满 | 国产高清视频免费最新在线 | 97超级碰碰碰视频在线观看 | 欧美日韩免费观看一区=区三区 | 日韩动态视频 | 免费成人在线电影 | 国产97色在线 | 亚洲第一中文字幕 | 亚洲aⅴ乱码精品成人区 | 免费av网址大全 | 久久久亚洲成人 | 午夜电影久久 | 欧美精品在线一区二区 | 激情五月在线观看 | 欧美在线1区 | 一区二区三区日韩在线观看 | 99久久婷婷| 欧美另类交人妖 | 国内久久视频 | 一区二区欧美在线观看 | 国产亚洲日本 | 中文字幕国内精品 | 欧洲精品一区二区 | 日本久久久久久久久久 | 天天射天天爱天天干 | 成人全视频免费观看在线看 | 91午夜精品| 中文国产字幕在线观看 | 成人免费共享视频 | 日本中文一级片 | 在线中文日韩 | 免费看的黄色片 | 日韩久久精品一区 | 91污污视频在线观看 | 在线 视频 一区二区 | 一级成人免费 | 久久国产剧场电影 | 国产精品久久网站 | 激情网婷婷 | 午夜精品福利影院 | 国产一区二区在线免费观看 | 91刺激视频 | 9在线观看免费高清完整版在线观看明 | 国际av在线 | www.五月天色 | 日韩素人在线观看 | 91完整版 | 99精品免费久久久久久久久日本 | 久久免费视频观看 | 久久久精品国产免费观看同学 | 日韩电影精品 | 蜜臀精品久久久久久蜜臀 | 色www精品视频在线观看 | 激情五月播播久久久精品 | 亚洲午夜av久久乱码 | 国产精品99在线观看 | 欧美日韩激情网 | 久久中文字幕视频 | 福利网址在线观看 | 天堂av在线| 超碰97成人 | 日韩高清激情 | 亚洲热视频 | 黄色高清视频在线观看 | 亚洲视频一 | 成人性生交视频 | 操操操com | 麻豆成人精品 | 成人三级av| 青春草免费视频 | 久久精品国产一区二区 | 9久久精品 | 91在线www| 黄色一区二区在线观看 | 精品国产乱码一区二 | 亚洲精品影视在线观看 | 综合视频在线 | 亚洲 欧美 国产 va在线影院 | 一区二区欧美日韩 | 欧美日韩亚洲在线观看 | 久久ww| 999久久久免费视频 午夜国产在线观看 | 国产精品高潮久久av | 国产一区二区久久 | 91久久国产综合精品女同国语 | 久久久久久久久久久久久久av | 久久视频免费观看 | 久艹视频在线观看 | 欧美成年性 | 国产精品高清在线观看 | 午夜色性片 | 国产在线播放不卡 | 久久成人国产精品入口 | 十八岁以下禁止观看的1000个网站 | 婷婷资源站 | 国产麻豆精品久久一二三 | 97在线公开视频 | 国产精品免费人成网站 | 五月婷婷丁香在线观看 | av一本久道久久波多野结衣 | 在线观看免费色 | 亚洲综合婷婷 | 99人成在线观看视频 | 中文字幕在线观看2018 | av网站免费线看精品 | 国产一区二区在线免费观看 | 97超碰超碰久久福利超碰 | 国产99久久精品一区二区永久免费 | 国产一级电影免费观看 | 久久精品女人毛片国产 | 日韩色av色资源 | 在线国产激情视频 | 欧美日韩国产在线观看 | 操操操av | 欧美男女爱爱视频 | 粉嫩av一区二区三区四区 | 免费看日韩片 | 91av在线不卡 | 国产一级二级三级在线观看 | 在线观看视频你懂的 | 久久亚洲私人国产精品 | 国产精品一区二区电影 | 成人黄色视| 一本一本久久aa综合精品 | 黄色影院在线免费观看 | 精品国产一区二区三区久久 | 在线91观看 | 国产精品破处视频 | 天堂av在线中文在线 | 亚洲综合在线播放 | 亚洲欧美日韩中文在线 | 国产精品不卡视频 | 日韩精品一区二区三区三炮视频 | 久久久精品 | a成人v在线 | 欧美日韩一区二区三区在线观看视频 | 人人干人人超 | 久久精品中文字幕少妇 | 日p视频 | 午夜av不卡| 中文字幕高清在线播放 | 亚洲精品视频在线 | 国产小视频在线免费观看 | 在线观看黄色免费视频 | 国产一区二区手机在线观看 | 久久精品女人毛片国产 | 97爱爱爱 | 国产亚洲精品久久19p | 99热高清| 日本黄色特级片 | 久久久久久久久久久久久久av | 在线观看网站黄 | 在线中文字幕观看 | 国产护士av | 免费视频18 | 久草精品视频在线播放 | 国产一二三精品 | 日本不卡123区 | 免费激情在线电影 | 欧美激情综合色 | 国内久久视频 | 九九综合在线 | 特级毛片在线 | 国产一区电影在线观看 | www黄| 亚洲精品自拍视频在线观看 | 国产成人黄色av | 午夜影院日本 | 国产精品久久久久久久av电影 | 久久亚洲综合色 | 曰本三级在线 | 欧美伦理电影一区二区 | 精品不卡av | 精品女同一区二区三区在线观看 | 日日摸日日碰 | 五月婷婷欧美视频 | 超碰97在线资源站 | 久久色视频 | 久久久国产精品免费 | 国产精品第二十页 | 国产 日韩 欧美 中文 在线播放 | 在线成人观看 | 国产一级二级三级在线观看 | 欧美激情视频一区二区三区免费 | 色婷婷综合在线 | 亚洲精品在线播放视频 | 国内精品美女在线观看 | 色老板在线 | 国产精品成人自产拍在线观看 | 手机av电影在线观看 | 国产黄色在线观看 | 国产资源免费在线观看 | 成人性生交大片免费观看网站 | 国产乱对白刺激视频在线观看女王 | 欧美日本啪啪无遮挡网站 | av一级二级| 中国一级片在线播放 | 国产成年人av | wwwwww国产| 久久不见久久见免费影院 | 欧美日韩二区三区 | 黄色性av| 99性视频 | 91成人免费视频 | 亚洲免费小视频 | 久久久久久久久久久网 | 黄色av高清 | 91视频啊啊啊| 99爱爱| 国产高清久久 | 免费黄色网址网站 | 亚洲精品黄色在线观看 | 黄网站色视频 | 九九99视频 | 久久久久久蜜桃一区二区 | 四虎国产精品永久在线国在线 | av高清影院 | 444av| 欧美精品一区在线 | 免费看成人片 | 少妇视频在线播放 | 黄色免费网 | 丁香婷婷久久 | 特级黄色一级 | 日本成人a | 狠狠色丁香婷婷综合视频 | 免费国产黄线在线观看视频 | 久久福利精品 | 日日久视频 | 国产三级精品在线 | 视频二区在线视频 | 亚洲精品免费在线观看 | 天天操夜夜摸 | 国产精品久久久久久久久久久久午夜 | 国产男女无遮挡猛进猛出在线观看 | 日本中文在线观看 | 日本中文一区二区 | 欧美日韩一区二区三区视频 | 伊人首页| 91av官网 | 日本中文字幕在线免费观看 | 国产精品永久久久久久久www | 久久精品国产99国产 | 国产精品美女久久久久久久 | 看毛片网站 | 9在线观看免费 | 精品久久网站 | 69国产盗摄一区二区三区五区 | 亚洲天堂视频在线 | 亚洲一区在线看 | 欧美大香线蕉线伊人久久 | 亚洲视屏在线播放 | 久久99网站 | 色操插 | 久草在线视频免费资源观看 | 中文字幕免费一区 | 91看片在线看片 | 精品福利网 | 国产最新在线视频 | 在线国产专区 | 国产黄色片一级 | japanesexxxhd奶水| 国产亚洲视频在线免费观看 | 国产精品福利视频 | 草久在线视频 | 国产成人免费在线观看 | 国产专区在线视频 | 国产成人在线观看 | 在线观看片 | 久久精品欧美 | 欧美日韩中文字幕综合视频 | 国产婷婷精品av在线 | 精品伊人久久久 | 在线观看黄色av | 天天操天天谢 | 韩国av三级 | 成年人在线视频观看 | 天天干,夜夜操 | 日韩成人av在线 | 激情视频久久 | 亚洲精品视频免费 | 97超碰色 | 欧美成人黄色 | 日韩在线一区二区免费 | 国产伦精品一区二区三区免费 | 又黄又爽的视频在线观看网站 | 国产一区在线观看免费 | 99热都是精品 | 91大神一区二区三区 | 久久久久久久久久久久影院 | 在线成人免费av | 精品久久影院 | 日韩欧美视频一区 | 91av国产视频 | 啪啪免费观看网站 | 国产精品理论片在线播放 | av超碰免费在线 | 免费网站色 | 国产午夜三级一区二区三 | 久久 亚洲视频 | 成人午夜剧场在线观看 | 亚洲国产欧美在线人成大黄瓜 | 四虎国产精品永久在线国在线 | 日韩视频一区二区三区在线播放免费观看 | av免费观看高清 | 久久爱992xxoo | 99热高清| 国产美女搞久久 | 欧美一级久久久久 | 天堂在线视频中文网 | 亚洲激情免费 | 久久人人97超碰精品888 | 亚洲最大成人网4388xx | 国产 日韩 中文字幕 | 伊人导航 | 亚洲精品一区二区三区高潮 | 久久好看免费视频 | 国产精品久久久久久久久久久久午夜片 | 久久99久久99精品免视看婷婷 | 国产精品久久久久久久久蜜臀 | 另类五月激情 | 免费观看丰满少妇做爰 | 福利一区视频 | 婷婷丁香色 | 久久久99国产精品免费 | 色婷婷88av视频一二三区 | 久久国产影院 | 在线观看av片 | 探花视频免费观看高清视频 | 成人午夜黄色影院 | 久久久黄视频 | 狠狠操狠狠干天天操 | 日韩免费成人 | 国产手机视频在线 | 韩国av免费 | 欧美日韩一二三四区 | 国产高清视频在线观看 | 日本黄网站 | av电影中文字幕在线观看 | 天天躁天天操 | 99在线视频免费观看 | 国产一级免费在线 | 婷婷夜夜| 97视频在线观看播放 | www.eeuss影院av撸 | 日韩在线一级 | 97在线观视频免费观看 | 亚洲91av | 日韩亚洲国产精品 | 在线免费观看视频一区 | 国产成人久久久77777 | 日本公妇在线观看 | 国产精品不卡av | 97精品国产 | 亚洲视频一区二区三区在线观看 | 久久国产精品精品国产色婷婷 | 精品91久久久久 | 亚洲天天在线日亚洲洲精 | 久精品在线观看 | 玖玖视频网 | 日韩黄色免费在线观看 | 中文字幕一区二区三区四区视频 | 免费在线观看黄 | 国产精品免费高清 | 国产高清视频免费在线观看 | av成年人电影 | 在线播放第一页 | 91精品综合在线观看 | 久久免费视频一区 | 91视频免费看网站 | 九九视频免费在线观看 | 五月天婷亚洲天综合网鲁鲁鲁 | 久久精品国产亚洲精品 | 最新国产精品久久精品 | 国产青春久久久国产毛片 | 深夜免费福利视频 | 在线观看av国产 | 国产精品视频久久久 | 亚洲黄色小说网 | 国产乱对白刺激视频不卡 | 久久综合狠狠 | 欧美一级视频免费 | 久久国产成人午夜av影院宅 | 国产亚洲精品成人av久久ww | 久久久久久久久久久久久久av | 操久久网| 91福利视频免费 | 亚洲一级黄色av | 国产在线91精品 | 98涩涩国产露脸精品国产网 | 91.精品高清在线观看 | 91免费高清视频 | 久久草视频 | 九九激情视频 | 欧美91在线 | 2021国产在线 | av大全在线观看 | 国产永久免费高清在线观看视频 | 一区中文字幕在线观看 | 国产69精品久久99的直播节目 | 一区二区中文字幕在线观看 | 久久与婷婷 | 在线国产日韩 | 国产精品一区久久久久 | 日本中文字幕在线免费观看 | 亚洲影院色 | 日韩免费看的电影 | 操夜夜操 | 国产三级精品三级在线观看 | 亚洲精品www久久久 www国产精品com | 久久99热精品这里久久精品 | 999成人网 | 久久久久久免费毛片精品 | 国产精品成人aaaaa网站 | 中文字幕你懂的 | 免费观看www小视频的软件 | 国产黄色av | 亚洲专区中文字幕 | 国产亚洲精品精品精品 | 久久综合免费视频影院 | 久久精品爱爱视频 | 国产大尺度视频 | 伊人日日干 | 亚洲理论在线观看电影 | 色噜噜狠狠色综合中国 | 九九久久婷婷 | 成人一级视频在线观看 | 亚洲婷婷网 | 伊人开心激情 | 五月婷婷综合激情网 | 激情伊人五月天久久综合 | 欧洲精品久久久久毛片完整版 | 免费高清在线视频一区· | 国产一区免费观看 | 国产成人61精品免费看片 | 欧美 激情 国产 91 在线 | 丁香激情视频 | 91视频免费看 | 91在线影视 | 色综合久久久久综合体 | 麻豆91网站| 五月天,com | 国产福利精品在线观看 | 日本一区二区三区视频在线播放 | 黄色免费网站下载 | 三级黄色a | 国产精品系列在线 | 成人a毛片 | 在线观看91网站 | 三级av中文字幕 | 日韩亚洲在线视频 | 91理论片午午伦夜理片久久 | 日韩免费在线观看视频 | 久久艹在线观看 | 91av成人| 国产91精品一区二区绿帽 | 久久伦理 | 欧美日韩免费在线视频 | 最近日本韩国中文字幕 | 亚洲欧美成人在线 | 91在线观看欧美日韩 | a视频免费在线观看 | 四虎影视成人永久免费观看亚洲欧美 | 91完整版 | 国产精品自在线拍国产 | 91成人免费在线 | 欧美色综合天天久久综合精品 | 欧美最猛性xxxxx(亚洲精品) | 国产中文a | 国产欧美最新羞羞视频在线观看 | 亚洲日本国产 | 国产精品久久久久久999 | 国产精品午夜免费福利视频 | 四虎影视成人 | 日韩免费视频网站 | 天天干,夜夜爽 | 久久久免费精品国产一区二区 | 日本中文字幕观看 | 91免费的视频在线播放 | 久久草网| 欧美日韩中文另类 | 成人久久久久 | 久久电影网站中文字幕 | 国产五月婷婷 | 一区二区三区免费看 | av成人亚洲| 久久婷婷一区二区三区 | 成人一级片视频 | 国产精品资源在线 | 久久午夜精品视频 | 国产精品2018 | 亚洲精品字幕在线观看 | 日日碰狠狠添天天爽超碰97久久 | 天天躁日日躁狠狠躁 | 在线观看亚洲电影 | 国产精品区免费视频 | 岛国一区在线 | 香蕉视频在线播放 | 中文字幕在线观看一区二区三区 | 黄色小说免费在线观看 | 夜又临在线观看 | 中文字幕亚洲欧美日韩 | 夜夜躁狠狠躁日日躁视频黑人 | 九九热精品视频在线观看 | 中文字幕一二 | 国产一区观看 | 91精品国自产在线偷拍蜜桃 | 99久久综合狠狠综合久久 | 狂野欧美激情性xxxx欧美 | 视频国产在线观看18 | 免费av的网站 | 99热最新网址 | 久久视频这里只有精品 | 日日激情 | 国产精品成人在线观看 | av在线免费播放 | 国产黄色av | 午夜久久精品 | 99国产精品免费网站 | a黄色片在线观看 | 日日干精品 | 欧美一级日韩三级 | 国产免费观看视频 | 日日夜夜噜噜噜 | 国产黄色一级大片 | 久草精品视频 | 在线国产片 | 中文字幕乱码电影 | 欧美精品二 | 99视频在线看 | 日日夜夜天天干 | 亚洲成 人精品 | 亚洲国产中文在线观看 | 久久久国产精华液 | 二区视频在线 | 欧美久久久久久 | 久久国产免费看 | 国产一级二级在线播放 | 亚洲精品免费在线观看视频 | 欧美人zozo | 欧美乱码精品一区二区 | 99久久精品久久久久久清纯 | 久久久久电影网站 | 成人蜜桃视频 | 日韩欧美在线免费 | 草久久av | 激情视频二区 | 国产精品久久久久久久久大全 | 九月婷婷人人澡人人添人人爽 | 久久久久亚洲精品男人的天堂 | 五月天中文字幕 | 国产精品久久久久久吹潮天美传媒 | 777奇米四色| 成人三级黄色 | 亚洲一区免费在线 | 国产高清成人av | 欧美日韩国产精品一区二区 | 在线免费观看黄色小说 | 国产成人香蕉 | 亚洲男模gay裸体gay | 中文字幕日韩国产 | 开心色激情网 | 久色小说 | 国产伦理久久精品久久久久_ | 九九热re | 国产精品成人久久 | 天天色天天干天天色 | 精品国产一区二区三区四区vr | 91视频中文字幕 | 日韩高清免费电影 | 欧美日韩中文字幕在线视频 | 成人免费在线观看入口 | 色综合狠狠干 | 欧美 亚洲 另类 激情 另类 | 国产精品二区在线观看 | 精品国产亚洲在线 | 亚洲欧美日韩一二三区 | 久草在线中文视频 | 日本激情视频中文字幕 | 欧美色图视频一区 | 日韩高清精品免费观看 | 国产精品密入口果冻 | 五月婷婷视频在线观看 | 国产精品短视频 | 天堂在线一区二区三区 | 欧美精品久久久久久久 | 在线成人高清电影 | a极黄色片 | 免费观看黄 | 欧美热久久| 国产日韩中文字幕 | 国产剧在线观看片 | 中文字幕之中文字幕 | 久久久黄视频 | 麻豆视频成人 | 亚洲黄色激情小说 | 欧美日韩一区二区三区免费视频 | 日韩中文字幕免费视频 | 欧美淫aaa免费观看 日韩激情免费视频 | 伊人射| 久久五月婷婷丁香社区 | 国产又黄又爽无遮挡 | 久久国产精品小视频 | 不卡的av电影在线观看 | 不卡视频在线 | 视频一区二区免费 | 97国产小视频 | 五月婷在线播放 | 色视频网站在线 | 亚洲国产三级在线观看 | 色婷婷九月 | 中文字幕在线播放视频 | 午夜电影中文字幕 | 夜色.com | 精品999久久久 | 日本精品中文字幕在线观看 | 日韩在线资源 | 免费看黄在线网站 | 婷婷射五月 | 五月天婷婷免费视频 | 国产精品午夜免费福利视频 | 色国产视频 | 久久久久久网址 | 国产黄大片在线观看 | 国产真实精品久久二三区 | 中文在线a∨在线 | 99久久9| 国产日本在线 | 日韩二区精品 | 国产精品99久久久精品免费观看 | 婷婷亚洲综合五月天小说 | 男女全黄一级一级高潮免费看 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 91自拍视频在线 | 久久免费视频一区 | 韩日视频在线 | 成人手机在线视频 | 亚洲1区 在线 | 国产精品原创视频 | 国产偷v国产偷∨精品视频 在线草 | 久久综合网色—综合色88 | 在线小视频国产 | 国产区 在线 | 伊人永久 | 五月婷婷精品 | 夜夜干天天操 | 超碰日韩在线 | 青青草在久久免费久久免费 | 成人在线视频观看 | 久草精品视频在线观看 | 国产精品18久久久久久久久 | 高清有码中文字幕 | 久久久亚洲国产精品麻豆综合天堂 | 国产看片免费 | 国产一级大片免费看 | 成人18视频| 国产经典av | 丁香婷婷色综合亚洲电影 | www.黄色片.com | 国产精品免费视频网站 | 精品不卡av| 欧美日韩网址 | 香蕉视频在线播放 | 一区二区三区久久 | 午夜精品一区二区三区在线视频 | 国产一级在线播放 | 免费色黄 | 日韩在线视频线视频免费网站 | 91大神精品视频在线观看 | 日韩av资源在线观看 | 99久久日韩精品免费热麻豆美女 | 色久天| 2022久久国产露脸精品国产 | 国产一级做a爱片久久毛片a | 五月天天在线 | 亚洲国产日韩av | 中文字幕日韩无 | 天天操夜夜操夜夜操 | 麻豆手机在线 | 激情五月在线观看 | 久久福利影视 | 免费在线色电影 | 色综合咪咪久久网 | 日日综合网 | 国产乱码精品一区二区三区介绍 | 国产黄色大片免费看 | 亚洲另类xxxx | 99精品国产成人一区二区 | 中文av日韩 | 亚洲精品免费在线观看 | 在线 国产 亚洲 欧美 | 亚洲中字幕 | 伊人久久婷婷 | 国产美女被啪进深处喷白浆视频 | 碰超在线97人人 | av资源网在线播放 | 国产精品九九久久久久久久 | 亚洲更新最快 | 日韩三级视频在线观看 | 国产原创在线 | 国产女人40精品一区毛片视频 | 99免费精品视频 | 丁香六月婷婷综合 | 成人免费看片98欧美 | 91九色视频导航 | 欧美性生活久久 | 在线午夜| 中文字幕网址 | 亚洲欧美视频在线观看 | 国产精品都在这里 | 69绿帽绿奴3pvideos | 日韩美在线观看 | 精品国产成人av | 欧美日韩中文在线视频 | 午夜精品一区二区三区免费 | 超碰夜夜 | 久久久久久蜜av免费网站 | 在线你懂 | 精品久久久久久久久久久院品网 | 99r在线 | 日韩精品一区不卡 | 日韩欧美电影在线 | 国产精品久久一卡二卡 | 日日天天干 | 婷婷色中文字幕 | 免费成人黄色 | av在线播放国产 | 国产精品视频全国免费观看 | 最新日韩在线观看视频 | 国产精品永久免费视频 | 日韩中文三级 | 久草在线播放视频 | 欧美午夜视频在线 | 黄网站a| 欧美大码xxxx | 99精品在线免费观看 | 九九在线高清精品视频 | 狠狠干综合 | 国产精品久久久网站 | 欧美激情xxxx性bbbb | 国产日本在线观看 | 久久国产精品偷 | 欧美亚洲国产精品久久高清浪潮 | 国产精品视频地址 | 亚洲经典中文字幕 | 欧美动漫一区二区三区 | 久久99日韩 | 日本成址在线观看 | 91av视频在线观看免费 | 亚洲一级黄色大片 | 欧美日韩一级视频 | 天天曰天天 | 天天射天天干天天操 | 精品国产aⅴ一区二区三区 在线直播av | 久久人人爽人人爽人人片av软件 | 欧美一进一出抽搐大尺度视频 | 99色| 人人爽久久久噜噜噜电影 | 婷婷射五月 | 五月综合 | 国产在线中文 | 有码中文字幕在线观看 | 人人澡人摸人人添学生av | 国产精品美女视频 | 在线草 | 亚洲一区二区观看 | 日本成人黄色片 | 免费黄色av| 欧美日韩国产二区三区 | 日本久热 | 91成人在线观看喷潮 | 日韩在线一级 | 狠狠狠综合 | 欧美精品视 | 狠狠久久婷婷 | 狠狠撸电影 | 亚洲视频免费视频 | 一级c片| 成年人电影免费看 |