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

    利用動態(tài)庫技術(shù)進(jìn)行通信協(xié)議模塊化設(shè)計

    2015-06-02 11:48:41劉永慶等
    電腦知識與技術(shù) 2015年9期
    關(guān)鍵詞:句柄通信協(xié)議線程

    劉永慶等

    摘要:該文針對利用動態(tài)庫技術(shù)進(jìn)行通信協(xié)議模塊化設(shè)計進(jìn)行研究,首先簡要地介紹了動態(tài)庫基本理論,然后給通信協(xié)議動態(tài)庫設(shè)計方法和設(shè)計要點(diǎn),最后給出了基于UDP的通信協(xié)議動態(tài)庫開發(fā)實(shí)例。

    關(guān)鍵詞:動態(tài)庫

    中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)09-0058-03

    在設(shè)計通信程序時,在其程序的實(shí)現(xiàn)形式上主要分為可執(zhí)行應(yīng)用程序和動態(tài)鏈接庫。前者能夠獨(dú)立運(yùn)行,通常針對某一特定需求而使用,功能完備但可移植性不強(qiáng);后者不能獨(dú)立運(yùn)行,只是以庫的形式提供相關(guān)功能的函數(shù)、類及其他數(shù)據(jù),動態(tài)庫可以為某一特定需求而定制。

    利用動態(tài)庫技術(shù)進(jìn)行通信協(xié)議設(shè)計,按照從核心到外圍的層次關(guān)系進(jìn)行模塊化組合設(shè)計,各模塊動態(tài)加載,可擴(kuò)展,獨(dú)立編譯,軟件系統(tǒng)層次明確、內(nèi)外松散耦合,便于功能組合和升級改造,提升軟件質(zhì)量。

    1 動態(tài)庫基本理論

    1.1動態(tài)庫分類

    VC支持三種DLL,它們是:

    1)Non-MFC DLL:指的是不用MFC的類庫結(jié)構(gòu),直接用C語言寫的DLL,其輸出函數(shù)一般用的是標(biāo)準(zhǔn)C接口,并能被非MFC或MFC編寫的應(yīng)用程序所調(diào)用。

    2)Regular DLL:和下述Extension DLL一樣,是用MFC類庫編寫的,能夠被所有支持DLL技術(shù)的語言所編寫的應(yīng)用程序調(diào)用。在這種動態(tài)鏈接庫中,它必需有一個從CWinAPP繼承下來的類,DLLMain函數(shù)被MFC提供,不用自己顯式的寫出來。

    3)Extension DLL:只被用MFC類庫所編寫的應(yīng)用程序所調(diào)用。在這種動態(tài)鏈接庫中,用戶可以從MFC繼承想要的、更適于自己用的類,并把它提供給自己的應(yīng)用程序。與Regular DLL不一樣,它沒有一個從CWinAPP繼承下來的類的對象,用戶必需為自己的DLLMain函數(shù)添加初始化代碼和結(jié)束代碼。

    1.2 DLL調(diào)用方法

    DLL的創(chuàng)建是供可執(zhí)行應(yīng)用程序調(diào)用的。使用了外部DLL的應(yīng)用程序的創(chuàng)建與普通應(yīng)用程序的創(chuàng)建完全一樣。在此基礎(chǔ)上可以對外部DLL進(jìn)行顯式或隱式調(diào)用。對DLL的調(diào)用分為兩種,一種是顯式的調(diào)用,一種是隱式的調(diào)用。所謂顯示的調(diào)用,是指在應(yīng)用程序中用LoadLibrary或MFC提供的AfxLoadLibrary顯示地將自己所做的動態(tài)庫調(diào)進(jìn)來,動態(tài)鏈接庫的文件名即是上面函數(shù)的參數(shù),再用GetProcAddress獲取想要引入的函數(shù)。自此,就可以像使用應(yīng)用程序自定義的函數(shù)一樣來調(diào)用此引入函數(shù)了。在應(yīng)用程序退出之前,應(yīng)該用FreeLibrary或MFC提供的AfxFreeLibrary釋放動態(tài)鏈接庫。

    隱式的調(diào)用則需要把產(chǎn)生動態(tài)鏈接庫時產(chǎn)生的.LIB文件加入到應(yīng)用程序的工程中,想使用DLL中的函數(shù)時,只需聲明一下即可,而無需調(diào)用LoadLibrary和FreeLibrary對DLL進(jìn)行顯示加載、卸載。

    隱式調(diào)用的方法比較簡單,但隱式調(diào)用的DLL在應(yīng)用程序加載的同時被加載到內(nèi)存中,當(dāng)應(yīng)用程序調(diào)用的DLL比較多時,裝入的過程十分緩慢。通過延遲加載技術(shù)可以很好地解決該問題。但除了必須的.dll文件外還需要DLL的.h文件和.lib文件。這在那些只提供.dll文件的場合就無法使用了,而只能采用顯式調(diào)用方式。

    1.3 輸入函數(shù)和輸出函數(shù)

    模塊是Windows的基本構(gòu)成單元,主要由應(yīng)用程序模塊和DLL模塊組成。這兩類模塊的結(jié)構(gòu)是一樣的,都可以“輸出”(export)函數(shù)供其他模塊使用,也可以“輸入”(import)其他模塊的函數(shù)。輸入一個函數(shù)就是在代碼中創(chuàng)建指向該函數(shù)的動態(tài)鏈接,而非像在靜態(tài)鏈接中那樣實(shí)際裝配該函數(shù)的代碼。與DLL不同,由應(yīng)用程序模塊輸出的函數(shù)是無法為其他應(yīng)用程序模塊所輸入的。

    MFC提供的用于輸出的函數(shù)的關(guān)鍵字是__declspec和dllexport。在要輸出的函數(shù)、類或數(shù)據(jù)的聲明前使用__declspec(dllexport)表示輸出。若要輸出動態(tài)庫中的函數(shù)mimafuwu(HWND hWnd)供應(yīng)用程序輸入使用則在動態(tài)庫中聲明該函數(shù)如下:

    #define REGULARMFCDLLLIB __declspec(dllexport)

    extern "C" REGULARMFCDLLLIB unsigned short mimafuwu(HWND hWnd);

    在應(yīng)用程序輸入聲明如下,_cdecl為調(diào)用約定:

    unsigned short (_cdecl *Func)(HWND);

    2 通信協(xié)議動態(tài)庫設(shè)計

    2.1 動態(tài)庫結(jié)構(gòu)

    通信協(xié)議動態(tài)庫一般只包含一個輸出函數(shù)和由該輸出函數(shù)創(chuàng)建的三個UI線程(用戶界面線程)即主控線程、數(shù)據(jù)接收線程和數(shù)據(jù)發(fā)送線程組成。三個線程分別對應(yīng)三個模塊:DLL主控模塊,DLL數(shù)據(jù)接收模塊和DLL數(shù)據(jù)發(fā)送模塊。DLL主控模塊負(fù)責(zé)與調(diào)用DLL的應(yīng)用程序及DLL數(shù)據(jù)收發(fā)模塊交互數(shù)據(jù)和消息,同時負(fù)責(zé)按接口協(xié)議進(jìn)行解析、分包、組包、超時重傳等數(shù)據(jù)處理操作,DLL數(shù)據(jù)收發(fā)模塊負(fù)責(zé)與外部通信端進(jìn)行物理層接口(如網(wǎng)口、串口等)的數(shù)據(jù)收發(fā),DLL數(shù)據(jù)收發(fā)模塊相互獨(dú)立不涉及信息交互。通信協(xié)議動態(tài)庫結(jié)構(gòu)示意圖見圖1。

    2.2 動態(tài)庫接口及協(xié)議

    通信協(xié)議動態(tài)庫接口設(shè)計為內(nèi)部接口和外部接口。如圖2所示,內(nèi)部接口為動態(tài)庫內(nèi)部模塊之間的接口,外部接口有兩種,分為動態(tài)庫與調(diào)用其的應(yīng)用程序之間的接口和動態(tài)庫與外部通信端之間的接口。

    2.2.1內(nèi)部接口及協(xié)議

    動態(tài)庫內(nèi)部接口為DLL主控模塊與DLL數(shù)據(jù)發(fā)送模塊之間和DLL主控模塊與DLL數(shù)據(jù)接收模塊之間的接口。內(nèi)部模塊之間主要通過自定義消息方式構(gòu)造協(xié)議進(jìn)行數(shù)據(jù)通信。

    2.2.2外部接口及協(xié)議

    2.2.2.1 動態(tài)庫和調(diào)用DLL的應(yīng)用程序之間接口及協(xié)議

    動態(tài)庫和調(diào)用DLL的應(yīng)用程序之間接口為DLL輸出函數(shù)。兩者之間主要通過自定義消息方式構(gòu)造協(xié)議進(jìn)行數(shù)據(jù)通信。

    2.2.2.2 動態(tài)庫和外部通信端之間接口及協(xié)議

    動態(tài)庫和外部通信端之間的接口主要為以太網(wǎng)口和串口、并口等通信端口等。使用的接口協(xié)議主要有:基于TCP的網(wǎng)絡(luò)通信協(xié)議、基于UDP的網(wǎng)絡(luò)通信協(xié)議和基于串口/并口的端口通信協(xié)議等。

    2.3 動態(tài)庫信息處理流程

    調(diào)用DLL的A端應(yīng)用程序擬制一份數(shù)據(jù)按動態(tài)庫和調(diào)用DLL的應(yīng)用程序之間接口協(xié)議將其提交DLL主控模塊,DLL主控模塊按動態(tài)庫和外部通信端之間接口協(xié)議進(jìn)行數(shù)據(jù)處理后再按內(nèi)部接口協(xié)議將數(shù)據(jù)提交DLL發(fā)送模塊,DLL發(fā)送模塊將數(shù)據(jù)發(fā)送到B端。DLL接收模塊接收B端數(shù)據(jù)后按內(nèi)部接口協(xié)議將其提交DLL主控模塊,DLL主控模塊按動態(tài)庫和外部通信端之間接口協(xié)議收齊數(shù)據(jù)后,再按動態(tài)庫和調(diào)用DLL的應(yīng)用程序之間接口協(xié)議將數(shù)據(jù)提交A端應(yīng)用程序。即:

    1)A端調(diào)用DLL的應(yīng)用程序->DDL主控模塊->DLL發(fā)送模塊- >B端

    2)B端 - >DLL接收模塊->DLL主控模塊->A端調(diào)用DLL的應(yīng)用程序

    3 通信協(xié)議動態(tài)庫設(shè)計要點(diǎn)

    3.1動態(tài)庫中的輸出函數(shù)

    應(yīng)用程序一啟動就應(yīng)加載動態(tài)庫,調(diào)用動態(tài)庫輸出函數(shù)。動態(tài)庫中一般只有一個輸出函數(shù),該函數(shù)只負(fù)責(zé)創(chuàng)建UI線程。輸出函數(shù)參數(shù)須包含應(yīng)用程序某窗口句柄,一般為主框架窗口句柄,同時輸出函數(shù)將必要的變量信息如動態(tài)庫創(chuàng)建的某個線程的線程號回傳至應(yīng)用程序。通過窗口句柄和線程號作為參數(shù),以便于應(yīng)用程序和動態(tài)庫之間以自定義消息的方式進(jìn)行通信。

    3.2動態(tài)庫中的超時時鐘設(shè)置

    動態(tài)庫中超時時鐘的設(shè)置與應(yīng)用程序有別,不能使用ON_WM_TIMER()消息機(jī)制,需采用自定義消息方式。具體方法如下。

    自定義超時消息:

    ON_MESSAGE(WM_TIMER, OnTimer)

    設(shè)置超時時鐘:

    UNIT m_iTimer=::SetTimer(0,0,3000,NULL);//3000表示定時3秒

    超時消息處理函數(shù):

    void OnTimer(WPARAM wparam,LPARAM lparam)

    {

    UINT nIDEvent =(UINT)wparam;

    if(nIDEvent==m_iTimer)

    {

    //超時處理

    }

    }

    關(guān)閉超時時鐘:

    KillTimer(0,m_iTimer);

    3.3動態(tài)庫與調(diào)用DLL的應(yīng)用程序之間的消息傳遞

    如前所述,動態(tài)庫與調(diào)用DLL的應(yīng)用程序之間消息傳遞時首先需要知道應(yīng)用程序窗口句柄和動態(tài)庫某線程的線程號,使用的MFC消息函數(shù)如下。

    動態(tài)庫往應(yīng)用程序發(fā)消息:

    ::PostMessage(

    ApphWnd,

    WM_DLL_TO_APP_MSG,

    WPARAM wparam,

    LPARAM lparam);

    其中,參數(shù)ApphWnd為應(yīng)用程序主框架窗口句柄,WM_DLL_TO_APP_MSG為自定義消息標(biāo)識,wparam為消息中攜帶的參數(shù)一(如數(shù)據(jù)指針等),lparam為消息中攜帶的參數(shù)二(如數(shù)據(jù)長度等)。

    應(yīng)用程序往動態(tài)庫發(fā)消息:

    PostThreadMessage(

    m_Threadid,

    WM_APP_TO_DLL_MSG,

    WPARAM wparam,

    LPARAM lparam);

    其中,參數(shù)m_Threadid為動態(tài)庫中某個線程的線程號,應(yīng)用程序?qū)⑾l(fā)往該線程,WM_APP_TO_DLL_MSG為自定義的消息標(biāo)識,wparam為消息中攜帶的參數(shù)一(如數(shù)據(jù)指針等),lparam為消息中攜帶的參數(shù)二(如數(shù)據(jù)長度等)。

    3.4 通信參數(shù)的設(shè)置和使用

    動態(tài)庫對通信參數(shù)(諸如IP地址、端口號、串口配置,動態(tài)庫路徑、分包長度、固定包頭、超時時鐘值和重傳次數(shù)等)的設(shè)置和使用一般有兩種方式。一種為,讀取第三方軟件形成的通信參數(shù)配置文件的方式。另一種為,應(yīng)用程序調(diào)用輸出函數(shù)時將通信參數(shù)傳遞給動態(tài)庫,動態(tài)庫再進(jìn)行通信參數(shù)的設(shè)置和使用。兩種方式以前者為優(yōu)。

    4 基于UDP的通信協(xié)議動態(tài)庫開發(fā)實(shí)例

    結(jié)合第3節(jié)和第4節(jié)內(nèi)容,本節(jié)以創(chuàng)建Regular DLL和顯式調(diào)用DLL為例,設(shè)計一個基于UDP的通信協(xié)議動態(tài)庫。為了使用該動態(tài)庫,首先創(chuàng)建一個調(diào)用該DLL的簡單應(yīng)用程序。

    第一步:創(chuàng)建應(yīng)用程序

    啟動VC++,單擊[File]->[New]菜單項,在project頁中選擇MFC AppWizard(exe),新建一個名為MyApp的基于單文檔界面的工程。

    第二步:創(chuàng)建DLL

    1)啟動VC++,單擊[File]->[New]菜單項,在project頁中選擇MFC AppWizard(dll),新建一個名為MyLib的工程,在第一步的時候選擇,創(chuàng)建一個動態(tài)鏈接MFC的規(guī)則DLL。

    2)構(gòu)造輸出函數(shù)mimafuwu():

    ① 在MyLib工程中填加空白源文件mimafuwu.cpp和mimafuwu.h;

    ② 在mimafuwu.cpp文件中輸入如下代碼:

    #include "StdAfx.h"

    #include "mimafuwu.h"

    //輸出函數(shù)根據(jù)具體應(yīng)用而定制。

    extern "C" REGULARMFCDLLLIB unsigned short mimafuwu(HWND hWnd)

    {

    AfxMessageBox("裝載DLL模塊成功!");

    return 0;

    }

    ③ 在mimafuwu.h文件中輸入如下代碼:

    #define REGULARMFCDLLLIB __declspec(dllexport)

    //輸出函數(shù)聲明,輸出函數(shù)根據(jù)具體應(yīng)用而定制。

    extern "C" REGULARMFCDLLLIB unsigned short mimafuwu(HWND hWnd);

    3)編譯后會生成庫文件MyLib.dll。

    第三步:應(yīng)用程序加載和使用DLL

    1)在創(chuàng)建的MyApp工程的MainFrm.cpp文件的函數(shù)

    CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

    return語句前添加如下代碼,完成對MyLib.dll的動態(tài)鏈接,并完成對輸出函數(shù)mimafuwu()的調(diào)用:

    //選擇好MyLib.dll文件路徑,裝載DLL模塊

    HINSTANCE hDLL = ::LoadLibrary("MyLib.dll");

    //輸入函數(shù)聲明

    unsigned short (_cdecl *Func)(HWND);

    // 獲取函數(shù)指針

    Func = (unsigned short(_cdecl *)(HWND))::GetProcAddress(hDLL, "mimafuwu");

    //調(diào)用DLL中的函數(shù)mimafuwu(HWND)

    //同時將應(yīng)用程序主框架窗口句柄傳至動態(tài)庫

    unsigned short nResult = Func(GetSafeHwnd());

    在上述代碼中,首先由LoadLibrary()將DLL模塊映射到進(jìn)程的內(nèi)存空間,對DLL模塊進(jìn)行動態(tài)加載。其函數(shù)原型為:

    LoadLibrary(LPCTSTR lpLibFileName);

    其中,參數(shù)lpLibFileName為待加載的模塊名,如不特殊指定擴(kuò)展名,Windows將指定默認(rèn)的擴(kuò)展名為“.dll”。如果成功加載則返回HINSTANCE值,標(biāo)識了文件映像映射到進(jìn)程地址空間的虛擬內(nèi)存地址;如果加載失敗則返回NULL,可通過GetLastError()了解進(jìn)一步的信息。

    接下來的GetProcAddress()函數(shù)將在DLL模塊中找到要輸入符號的地址。其函數(shù)原型為:

    FARPROC GetProcAddress( HMODULE hModule, LPCSTR lpProcName);

    其中,參數(shù)hModule為通過LoadLibrary()等函數(shù)而得到的DLL模塊句柄,lpProcName為要查找的輸入符號名。GetProcAddress()在成功調(diào)用后將返回DLL的輸出符號地址,否則返回空指針NULL。通過其返回得到的內(nèi)存地址即可完成對輸出函數(shù)的調(diào)用。

    當(dāng)進(jìn)程中的線程不再需要DLL中的輸出符號時,可以通過AfxFreeLibrary()函數(shù)從進(jìn)程的地址空間顯式卸載DLL。其函數(shù)原型如下:

    BOOL FreeLibrary(HMODULE hLibModule);

    其中參數(shù)hLibModule標(biāo)識了要卸載的DLL模塊。

    2) 編譯后會生成可執(zhí)行文件MyApp.exe,確保文件MyLib.dll路徑正確。運(yùn)行后若彈出提示框,則應(yīng)用程序加載和使用DLL成功。

    第四步:根據(jù)具體應(yīng)用定制應(yīng)用程序和DLL

    在前面生成的MyApp和MyLib工程的基礎(chǔ)上進(jìn)行修改。應(yīng)用程序一啟動就加載一個開了三個UI線程(用戶界面線程)即數(shù)據(jù)接收線程、數(shù)據(jù)發(fā)送線程和主控線程的動態(tài)庫,應(yīng)用程序與動態(tài)庫主控線程、動態(tài)庫收發(fā)線程與主控線程之間通過自定義消息方式進(jìn)行數(shù)據(jù)交互。在動態(tài)庫庫數(shù)據(jù)接收線程中創(chuàng)建UDP套接字,通過將IP地址設(shè)置為127.0.0.l實(shí)現(xiàn)應(yīng)用程序?qū)?shù)據(jù)的自發(fā)自收。

    整個信息流程為:應(yīng)用程序擬制一份數(shù)據(jù)提交動態(tài)庫主控線程,動態(tài)庫主控線程將收到到的數(shù)據(jù)提交動態(tài)庫發(fā)送線程發(fā)送,動態(tài)庫接收線程收到數(shù)據(jù)后提交動態(tài)庫主控線程,動態(tài)庫主控線程將數(shù)據(jù)提交應(yīng)用程序,即:應(yīng)用程序->DLL主控->DLL發(fā)送- >DLL接收->DLL主控->應(yīng)用程序。數(shù)據(jù)在各提交過程中不做任何處理,應(yīng)用程序發(fā)出的數(shù)據(jù)和收到的數(shù)據(jù)內(nèi)容一致。

    5 結(jié)束語

    編寫通信協(xié)議動態(tài)鏈接庫DLL設(shè)計說明,目的是作為規(guī)范和指導(dǎo)DLL形式的通信協(xié)議程序模塊設(shè)計工作的技術(shù)文件。同時對DLL基本程序設(shè)計、實(shí)現(xiàn)DLL功能擴(kuò)展和對第三方提供的DLL功能模塊調(diào)用等提供編程基礎(chǔ)。利用動態(tài)庫技術(shù),遵循從核心到外圍的層次關(guān)系進(jìn)行模塊化組合設(shè)計理念,使軟件系統(tǒng)層次明確,各模塊松散耦合、獨(dú)立開發(fā)、獨(dú)立驗證、獨(dú)立升級改造,便于整個軟件系統(tǒng)維護(hù)與功能擴(kuò)展,提升軟件質(zhì)量。

    參考文獻(xiàn):

    [1] Roberts J W. Traffic control in the BISDN[J]. Computer Networks and ISDN Systems, 1993(25): 1055-1064.

    [2] 郎銳, 孫方. Visual C++ 網(wǎng)絡(luò)通信程序開發(fā)基礎(chǔ)及實(shí)例解析[M]. 2版. 北京: 機(jī)械工業(yè)出版社, 2006.

    [3] Kruglinski D J. Visual C++ 技術(shù)內(nèi)幕[M]. 4版. 北京: 清華大學(xué)出版社, 2009.

    [4] Ian Sommervill. 軟件工程[M]. 9版. 北京: 機(jī)械工業(yè)出版社, 2011.

    猜你喜歡
    句柄通信協(xié)議線程
    基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計
    高校圖書館持久標(biāo)識符應(yīng)用研究
    編譯程序語法分析句柄問題分析與探討
    淺談linux多線程協(xié)作
    基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計與研究
    基于NS-3的PLC多頻通信協(xié)議仿真平臺設(shè)計與實(shí)現(xiàn)
    電測與儀表(2016年2期)2016-04-12 00:24:52
    MFC應(yīng)用程序多線程混合顯示界面方法研究
    RSSP-I、RSSP-Ⅱ及SAHARA三種安全通信協(xié)議實(shí)現(xiàn)技術(shù)簡介
    基于SPY++的軟件功能擴(kuò)展的研究
    Linux線程實(shí)現(xiàn)技術(shù)研究
    尤物成人国产欧美一区二区三区| av在线天堂中文字幕| 少妇裸体淫交视频免费看高清| 久久久色成人| 国内久久婷婷六月综合欲色啪| 日韩成人伦理影院| 国产精品一区二区在线观看99 | 成人亚洲精品av一区二区| 午夜久久久久精精品| 欧美+日韩+精品| 日韩人妻高清精品专区| 一边亲一边摸免费视频| 亚洲av免费高清在线观看| 欧美高清性xxxxhd video| 亚洲,欧美,日韩| 日韩人妻高清精品专区| 亚洲国产欧美在线一区| 日本欧美国产在线视频| 亚洲av成人精品一区久久| 亚洲经典国产精华液单| 日本五十路高清| 久久人人爽人人爽人人片va| 麻豆国产av国片精品| 国产av一区在线观看免费| 伦精品一区二区三区| 男女啪啪激烈高潮av片| 久久久久久久午夜电影| 51国产日韩欧美| 日韩视频在线欧美| 99久久久亚洲精品蜜臀av| 国产精品免费一区二区三区在线| 亚洲精品国产av成人精品| 蜜桃久久精品国产亚洲av| 国产午夜精品论理片| 午夜福利高清视频| 哪里可以看免费的av片| 99在线视频只有这里精品首页| 乱码一卡2卡4卡精品| 少妇高潮的动态图| 最新中文字幕久久久久| 99久久无色码亚洲精品果冻| 国产久久久一区二区三区| 伊人久久精品亚洲午夜| 男人舔女人下体高潮全视频| 一个人观看的视频www高清免费观看| 国产单亲对白刺激| 亚洲欧美日韩东京热| 亚洲第一区二区三区不卡| 国产伦理片在线播放av一区 | 成人亚洲欧美一区二区av| 欧美日韩综合久久久久久| 美女大奶头视频| 美女xxoo啪啪120秒动态图| av女优亚洲男人天堂| 国产在线精品亚洲第一网站| 99视频精品全部免费 在线| 欧美bdsm另类| 一边摸一边抽搐一进一小说| 十八禁国产超污无遮挡网站| 在线天堂最新版资源| 国产精品久久久久久精品电影| 99国产精品一区二区蜜桃av| 国产av一区在线观看免费| 白带黄色成豆腐渣| 国产精品一及| 国产老妇伦熟女老妇高清| 又黄又爽又刺激的免费视频.| 老熟妇乱子伦视频在线观看| 99热网站在线观看| 男人和女人高潮做爰伦理| 国产成人精品一,二区 | 晚上一个人看的免费电影| 国产精品99久久久久久久久| 最新中文字幕久久久久| 男插女下体视频免费在线播放| 级片在线观看| 熟女电影av网| 亚洲自偷自拍三级| 99热6这里只有精品| 成人综合一区亚洲| 波多野结衣高清无吗| 欧美性猛交黑人性爽| 最近2019中文字幕mv第一页| 国产伦一二天堂av在线观看| 看非洲黑人一级黄片| av视频在线观看入口| 国产精品蜜桃在线观看 | 久久久久久大精品| 成人二区视频| 在线观看66精品国产| 日韩欧美一区二区三区在线观看| 亚洲最大成人手机在线| 麻豆一二三区av精品| 中文字幕av成人在线电影| 欧美一区二区国产精品久久精品| 国产69精品久久久久777片| 91精品一卡2卡3卡4卡| 日产精品乱码卡一卡2卡三| 日韩强制内射视频| 亚洲av不卡在线观看| 久久久精品大字幕| 国产在线精品亚洲第一网站| 18禁在线播放成人免费| 久久久久久久午夜电影| 久久久精品欧美日韩精品| 国产一区二区在线av高清观看| 极品教师在线视频| 亚洲欧美中文字幕日韩二区| 人人妻人人澡人人爽人人夜夜 | 九九在线视频观看精品| 国内少妇人妻偷人精品xxx网站| 此物有八面人人有两片| 一边亲一边摸免费视频| 国产精品女同一区二区软件| 国产淫片久久久久久久久| 国产69精品久久久久777片| 欧美成人免费av一区二区三区| 一进一出抽搐动态| 蜜桃亚洲精品一区二区三区| 在线播放国产精品三级| 真实男女啪啪啪动态图| 久久久久久久久中文| 日韩国内少妇激情av| 欧美三级亚洲精品| 2022亚洲国产成人精品| 黄片无遮挡物在线观看| 欧美bdsm另类| 国产成年人精品一区二区| 两个人视频免费观看高清| 午夜免费激情av| 国产黄色视频一区二区在线观看 | 午夜视频国产福利| 免费观看在线日韩| 午夜福利在线在线| 男女做爰动态图高潮gif福利片| 两个人视频免费观看高清| 亚洲精品乱码久久久v下载方式| 一个人看的www免费观看视频| 夜夜看夜夜爽夜夜摸| 三级男女做爰猛烈吃奶摸视频| 在线观看66精品国产| av在线蜜桃| 亚洲精品日韩在线中文字幕 | 特大巨黑吊av在线直播| 欧美日韩乱码在线| 三级男女做爰猛烈吃奶摸视频| 九九久久精品国产亚洲av麻豆| 性色avwww在线观看| 成人欧美大片| 国产 一区精品| 精品久久国产蜜桃| 国产片特级美女逼逼视频| 久久久a久久爽久久v久久| 看免费成人av毛片| 美女脱内裤让男人舔精品视频 | 波多野结衣巨乳人妻| 国产亚洲精品av在线| 久久久久免费精品人妻一区二区| 日韩国内少妇激情av| 成人亚洲欧美一区二区av| 国产高潮美女av| 日韩精品有码人妻一区| or卡值多少钱| 一级毛片我不卡| 最近的中文字幕免费完整| 啦啦啦啦在线视频资源| 成人美女网站在线观看视频| 深爱激情五月婷婷| 99久国产av精品国产电影| 国内久久婷婷六月综合欲色啪| 99视频精品全部免费 在线| 久久国产乱子免费精品| 欧美xxxx黑人xx丫x性爽| 可以在线观看毛片的网站| 亚洲自拍偷在线| 一边摸一边抽搐一进一小说| 成人永久免费在线观看视频| 亚洲18禁久久av| 美女高潮的动态| 亚洲成人av在线免费| 亚洲熟妇中文字幕五十中出| 亚洲不卡免费看| 国产女主播在线喷水免费视频网站 | 成人亚洲精品av一区二区| 精品熟女少妇av免费看| 女人十人毛片免费观看3o分钟| 国产又黄又爽又无遮挡在线| 欧美日韩在线观看h| 午夜免费激情av| 中文资源天堂在线| 亚洲熟妇中文字幕五十中出| 亚洲图色成人| 亚洲欧美日韩无卡精品| 精品一区二区三区视频在线| 小说图片视频综合网站| 久久久精品欧美日韩精品| 国内久久婷婷六月综合欲色啪| 国产乱人视频| 美女cb高潮喷水在线观看| 久久亚洲国产成人精品v| 99热网站在线观看| 国产精品蜜桃在线观看 | 亚洲精品影视一区二区三区av| 国产精品电影一区二区三区| 日韩制服骚丝袜av| 少妇熟女欧美另类| 黄色配什么色好看| 中文精品一卡2卡3卡4更新| 亚洲成人久久爱视频| 看十八女毛片水多多多| 亚洲国产欧美人成| 国产又黄又爽又无遮挡在线| 久久精品夜夜夜夜夜久久蜜豆| 乱系列少妇在线播放| 成人高潮视频无遮挡免费网站| 免费电影在线观看免费观看| 欧美3d第一页| 日韩人妻高清精品专区| 国模一区二区三区四区视频| 久久久久久久久中文| eeuss影院久久| 1024手机看黄色片| 小说图片视频综合网站| 亚洲av熟女| 黄色欧美视频在线观看| 99久久精品热视频| 欧美成人免费av一区二区三区| 身体一侧抽搐| 夜夜爽天天搞| 熟妇人妻久久中文字幕3abv| 九九热线精品视视频播放| 亚洲av电影不卡..在线观看| 2021天堂中文幕一二区在线观| 毛片女人毛片| 老熟妇乱子伦视频在线观看| 一个人免费在线观看电影| 国产探花在线观看一区二区| 色综合亚洲欧美另类图片| 国产黄色视频一区二区在线观看 | 国产精品不卡视频一区二区| 久久鲁丝午夜福利片| 久久精品久久久久久噜噜老黄 | 小蜜桃在线观看免费完整版高清| 色综合亚洲欧美另类图片| 成年免费大片在线观看| ponron亚洲| 国模一区二区三区四区视频| 伦理电影大哥的女人| 久久久久久久午夜电影| 男女那种视频在线观看| 亚洲欧美成人综合另类久久久 | 国产伦理片在线播放av一区 | 99久久成人亚洲精品观看| 2022亚洲国产成人精品| 亚洲成人久久爱视频| 精品不卡国产一区二区三区| 日日摸夜夜添夜夜爱| 精品久久久久久久人妻蜜臀av| 久久久久久伊人网av| 免费看av在线观看网站| 亚洲av中文av极速乱| 在线观看午夜福利视频| 一个人看的www免费观看视频| 我要看日韩黄色一级片| 国产高清三级在线| 精华霜和精华液先用哪个| 日本一二三区视频观看| 夫妻性生交免费视频一级片| 亚洲国产精品成人综合色| 久久这里有精品视频免费| 99热网站在线观看| 色尼玛亚洲综合影院| 久久人人精品亚洲av| 亚洲欧美日韩高清专用| 女同久久另类99精品国产91| 18禁在线无遮挡免费观看视频| 亚洲无线观看免费| or卡值多少钱| 欧美一级a爱片免费观看看| 一区福利在线观看| 99久国产av精品| 亚洲精品乱码久久久久久按摩| 国模一区二区三区四区视频| 黄色日韩在线| 亚洲七黄色美女视频| 久久这里有精品视频免费| 久久久久久久久大av| 国产v大片淫在线免费观看| 久久欧美精品欧美久久欧美| 久久久国产成人免费| 婷婷精品国产亚洲av| 偷拍熟女少妇极品色| 日韩一区二区视频免费看| 26uuu在线亚洲综合色| 亚洲国产精品成人久久小说 | 1024手机看黄色片| 国内精品美女久久久久久| 嫩草影院新地址| 国产成人午夜福利电影在线观看| 丰满乱子伦码专区| 天堂av国产一区二区熟女人妻| 亚洲av.av天堂| 校园春色视频在线观看| 国产午夜精品久久久久久一区二区三区| 午夜精品在线福利| 欧美最新免费一区二区三区| 天天躁日日操中文字幕| 伊人久久精品亚洲午夜| 最近中文字幕高清免费大全6| 欧美潮喷喷水| 99久久中文字幕三级久久日本| 国产精品伦人一区二区| 此物有八面人人有两片| 在线免费观看不下载黄p国产| 欧美三级亚洲精品| 午夜老司机福利剧场| 99久久精品一区二区三区| 国产精品久久久久久精品电影| 如何舔出高潮| 色噜噜av男人的天堂激情| 欧美3d第一页| 97人妻精品一区二区三区麻豆| 99热全是精品| 亚洲美女搞黄在线观看| 深夜a级毛片| 亚洲成a人片在线一区二区| 国产爱豆传媒在线观看| 亚洲欧美中文字幕日韩二区| 日本免费一区二区三区高清不卡| 男人和女人高潮做爰伦理| 欧美日韩国产亚洲二区| 我要看日韩黄色一级片| 欧美日韩国产亚洲二区| 日本av手机在线免费观看| 国产成人午夜福利电影在线观看| 久久久久久久午夜电影| 99精品在免费线老司机午夜| 亚洲国产欧美在线一区| 真实男女啪啪啪动态图| 亚洲18禁久久av| av在线老鸭窝| 国产精品一区二区三区四区久久| 一本精品99久久精品77| 国产成人91sexporn| 亚洲人成网站在线播| 国产一区二区在线观看日韩| 精品99又大又爽又粗少妇毛片| 91av网一区二区| 美女高潮的动态| 2021天堂中文幕一二区在线观| 麻豆乱淫一区二区| 悠悠久久av| 亚洲精品影视一区二区三区av| 国产在线男女| 国内揄拍国产精品人妻在线| 偷拍熟女少妇极品色| 噜噜噜噜噜久久久久久91| 在线观看美女被高潮喷水网站| 亚洲人成网站高清观看| 久久亚洲国产成人精品v| 精品午夜福利在线看| 亚洲av电影不卡..在线观看| 国产一级毛片七仙女欲春2| 淫秽高清视频在线观看| 欧美高清性xxxxhd video| 亚洲自拍偷在线| 99久国产av精品国产电影| 青春草视频在线免费观看| 全区人妻精品视频| 日韩成人av中文字幕在线观看| 久久久精品大字幕| 国产高清激情床上av| 夜夜夜夜夜久久久久| 国产免费一级a男人的天堂| 美女xxoo啪啪120秒动态图| 尤物成人国产欧美一区二区三区| 欧美三级亚洲精品| 舔av片在线| 久久久久久久久久久丰满| 国产三级中文精品| 日韩av在线大香蕉| 亚洲av中文字字幕乱码综合| 久久国产乱子免费精品| 久久久国产成人免费| 麻豆成人av视频| 免费不卡的大黄色大毛片视频在线观看 | 又爽又黄无遮挡网站| 不卡一级毛片| 最近中文字幕高清免费大全6| 大又大粗又爽又黄少妇毛片口| 日本色播在线视频| 国产精品久久久久久精品电影小说 | 菩萨蛮人人尽说江南好唐韦庄 | 99热6这里只有精品| 日韩人妻高清精品专区| 久久精品久久久久久久性| 精品人妻视频免费看| 一级av片app| 国产 一区精品| 亚洲av电影不卡..在线观看| 亚洲av.av天堂| 精品久久久久久久久久免费视频| 久久精品综合一区二区三区| 91狼人影院| 青青草视频在线视频观看| 国产探花极品一区二区| 欧美zozozo另类| 国产精品1区2区在线观看.| 性色avwww在线观看| 国产一级毛片七仙女欲春2| 国产精品嫩草影院av在线观看| 成人毛片a级毛片在线播放| 三级毛片av免费| 久久99精品国语久久久| 久久精品国产99精品国产亚洲性色| 欧美日韩精品成人综合77777| 高清毛片免费看| 国产精品,欧美在线| 日韩视频在线欧美| 我要看日韩黄色一级片| www.av在线官网国产| 嫩草影院入口| 国内精品美女久久久久久| 一进一出抽搐动态| 哪个播放器可以免费观看大片| 免费无遮挡裸体视频| 91久久精品国产一区二区成人| 伊人久久精品亚洲午夜| 一边摸一边抽搐一进一小说| 日韩欧美 国产精品| 韩国av在线不卡| 哪个播放器可以免费观看大片| 高清毛片免费看| 爱豆传媒免费全集在线观看| 少妇的逼水好多| 我要看日韩黄色一级片| 成年版毛片免费区| 久久国内精品自在自线图片| 国内少妇人妻偷人精品xxx网站| 成人av在线播放网站| av天堂在线播放| 女的被弄到高潮叫床怎么办| 国产不卡一卡二| 久久精品国产亚洲av天美| av国产免费在线观看| 别揉我奶头 嗯啊视频| 久久久久久久久久黄片| 成人午夜精彩视频在线观看| 狠狠狠狠99中文字幕| 伦理电影大哥的女人| 春色校园在线视频观看| 91午夜精品亚洲一区二区三区| 成年免费大片在线观看| 日韩制服骚丝袜av| 国产av麻豆久久久久久久| 97在线视频观看| 91狼人影院| 性插视频无遮挡在线免费观看| 亚洲第一区二区三区不卡| av女优亚洲男人天堂| 免费看a级黄色片| 成年av动漫网址| 97超视频在线观看视频| 在线播放无遮挡| 亚洲av熟女| 在线天堂最新版资源| 精品一区二区三区视频在线| 国产真实伦视频高清在线观看| 校园春色视频在线观看| 爱豆传媒免费全集在线观看| 国产亚洲精品av在线| 日日摸夜夜添夜夜爱| 国产午夜福利久久久久久| 午夜精品在线福利| 久久人人精品亚洲av| 别揉我奶头 嗯啊视频| 国产av不卡久久| 成人欧美大片| 日韩成人av中文字幕在线观看| 一级黄色大片毛片| 少妇人妻精品综合一区二区 | 国产中年淑女户外野战色| 免费观看a级毛片全部| 亚洲国产精品久久男人天堂| 国产国拍精品亚洲av在线观看| 日韩欧美在线乱码| 欧美成人a在线观看| 在线观看免费视频日本深夜| 少妇人妻精品综合一区二区 | 啦啦啦啦在线视频资源| 看片在线看免费视频| 中文字幕熟女人妻在线| 老熟妇乱子伦视频在线观看| 欧美色视频一区免费| 久久人人精品亚洲av| 又爽又黄a免费视频| 久久久精品94久久精品| 99久久九九国产精品国产免费| 国产精品嫩草影院av在线观看| 久久人人精品亚洲av| 国产在视频线在精品| 国国产精品蜜臀av免费| 亚洲色图av天堂| 国产老妇伦熟女老妇高清| 亚洲欧美日韩无卡精品| 99热这里只有是精品50| 青春草亚洲视频在线观看| 国产成人freesex在线| 午夜福利视频1000在线观看| 男人舔奶头视频| 国产久久久一区二区三区| 天堂√8在线中文| 天堂av国产一区二区熟女人妻| 欧美性猛交╳xxx乱大交人| 波野结衣二区三区在线| 非洲黑人性xxxx精品又粗又长| 在线观看一区二区三区| 国产日韩欧美在线精品| 校园人妻丝袜中文字幕| 国产一级毛片七仙女欲春2| 成人鲁丝片一二三区免费| 少妇丰满av| 国产日韩欧美在线精品| 国产黄色小视频在线观看| 天堂中文最新版在线下载 | 日韩一本色道免费dvd| 精品99又大又爽又粗少妇毛片| 国产成人福利小说| h日本视频在线播放| 国产精品一区www在线观看| 亚洲成人中文字幕在线播放| 国产日韩欧美在线精品| 免费不卡的大黄色大毛片视频在线观看 | 男女做爰动态图高潮gif福利片| 天堂av国产一区二区熟女人妻| 男女视频在线观看网站免费| 一区二区三区高清视频在线| 免费黄网站久久成人精品| 一边亲一边摸免费视频| 亚洲色图av天堂| 狂野欧美白嫩少妇大欣赏| 男女做爰动态图高潮gif福利片| 国产在线男女| 久久韩国三级中文字幕| 久久久久久九九精品二区国产| 国产精品久久电影中文字幕| 国国产精品蜜臀av免费| 在线观看66精品国产| 欧美色欧美亚洲另类二区| 高清日韩中文字幕在线| 国产伦在线观看视频一区| 亚洲精品国产av成人精品| 国产精品福利在线免费观看| 成人美女网站在线观看视频| av视频在线观看入口| ponron亚洲| 国内久久婷婷六月综合欲色啪| 亚洲最大成人av| 你懂的网址亚洲精品在线观看 | 伦理电影大哥的女人| 国产黄色视频一区二区在线观看 | 男人的好看免费观看在线视频| 国产精品无大码| 国产色婷婷99| 亚洲国产精品成人综合色| 日韩精品青青久久久久久| 国产亚洲av片在线观看秒播厂 | 看非洲黑人一级黄片| 天堂av国产一区二区熟女人妻| 国模一区二区三区四区视频| 久久99蜜桃精品久久| 亚洲人成网站高清观看| 亚洲欧美日韩卡通动漫| 此物有八面人人有两片| 久久久a久久爽久久v久久| 国产黄片视频在线免费观看| 午夜福利高清视频| 国产在视频线在精品| 一个人免费在线观看电影| 国产女主播在线喷水免费视频网站 | 亚洲婷婷狠狠爱综合网| 2021天堂中文幕一二区在线观| 天堂网av新在线| 色播亚洲综合网| 99国产极品粉嫩在线观看| 国产日韩欧美在线精品| 日韩av在线大香蕉| 日产精品乱码卡一卡2卡三| 亚洲人成网站高清观看| 欧美在线一区亚洲| 欧美又色又爽又黄视频| 亚洲在线自拍视频| 天天躁日日操中文字幕| 日本与韩国留学比较| 观看免费一级毛片| 国产视频首页在线观看| 黄色配什么色好看| 99在线视频只有这里精品首页| 亚洲欧洲国产日韩| 国产午夜精品一二区理论片| 丝袜美腿在线中文| 国产免费一级a男人的天堂| 亚洲精品456在线播放app| 床上黄色一级片| 国产高清不卡午夜福利| 免费看日本二区| 国产一区二区激情短视频| 国产精品久久久久久久电影| 欧美极品一区二区三区四区| 欧美性猛交╳xxx乱大交人| 日韩欧美 国产精品| 国产大屁股一区二区在线视频| 深爱激情五月婷婷| 22中文网久久字幕| 亚洲美女搞黄在线观看|