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

    基于統(tǒng)一事件模型的軟件通信框架設(shè)計(jì)與實(shí)現(xiàn)

    2012-04-29 08:45:24龐銳呂達(dá)陳科
    計(jì)算機(jī)時(shí)代 2012年11期
    關(guān)鍵詞:面向?qū)ο?/a>

    龐銳 呂達(dá) 陳科

    摘要: 針對(duì)現(xiàn)代軟件系統(tǒng)中模塊協(xié)同工作的通信需求,提出了一個(gè)軟件通信框架的完整實(shí)現(xiàn)方案。通過分析軟件系統(tǒng)中對(duì)模塊通信的要求,建立統(tǒng)一的事件模型,完成進(jìn)程間、進(jìn)程內(nèi)通信框架設(shè)計(jì),并利用Qt開發(fā)庫(kù)完成通信框架的軟件實(shí)現(xiàn)。使用該軟件通信框架可以減少模塊通信復(fù)雜度,縮短軟件通信功能開發(fā)周期,提高軟件可維護(hù)性,而且利于擴(kuò)展和移植。

    關(guān)鍵詞: 模塊通信; 事件模型; 軟件框架; 面向?qū)ο螅?Qt

    中圖分類號(hào):TP391文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2012)11-16-03

    Design and implementation of software communication framework based on uniform event model

    Pang Rui, Lv Da, Chen Ke

    (SINOPEC Geophysical Research Institute, Nanjing, Jiangsu 211103, China)

    Abstract: Targeted on module communication requirement of modern software system, a solution to software communication framework is proposed. By analyzing communication requirement in module development, uniform event model is constructed, and software framework for module communication is designed. Finally, by using Qt, a communication framework is realized. Using the framework can reduce module complicacy and shorten development period of communication. Furthermore, software maintenance is improved, and software transplant benefits.

    Key words: module communication; event model; software framework; object-oriented; Qt

    0 引言

    隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,各類軟件系統(tǒng)為了滿足不斷變化的用戶需求,提供的功能越來越多,其軟件規(guī)模日益龐大,實(shí)現(xiàn)復(fù)雜度也越來越高。在現(xiàn)代軟件系統(tǒng)中,對(duì)復(fù)雜的業(yè)務(wù)需要進(jìn)行層次劃分,將業(yè)務(wù)功能相對(duì)模塊化,模塊具備高內(nèi)聚低耦合的特性,通過模塊間的協(xié)同工作來提供復(fù)雜的軟件功能[1]。軟件模塊協(xié)同工作的基礎(chǔ)是在模塊間可以傳遞信息數(shù)據(jù),根據(jù)業(yè)務(wù)劃分不同,可以在一個(gè)進(jìn)程中只包含一個(gè)模塊,通過進(jìn)程間模塊通信協(xié)同工作,也可以在一個(gè)進(jìn)程中包含多個(gè)模塊,通過進(jìn)程內(nèi)模塊通信協(xié)同工作。那么,建立一個(gè)高效統(tǒng)一的進(jìn)程間、進(jìn)程內(nèi)事件通信機(jī)制,才能保證各個(gè)模塊間可靠的協(xié)作關(guān)系,降低軟件系統(tǒng)通信復(fù)雜度,提高開發(fā)效率。

    1 軟件模塊的通信需求分析

    面向不同的行業(yè)應(yīng)用領(lǐng)域,軟件模塊的通信需求是不同的。在專家決策系統(tǒng)中,模塊間需要借助通信對(duì)同一數(shù)據(jù)進(jìn)行聯(lián)動(dòng)操作分析;在游戲軟件中,模塊間需要利用通信對(duì)用戶交互操作進(jìn)行協(xié)同處理;在計(jì)費(fèi)軟件中,模塊間需要傳遞各種費(fèi)用數(shù)據(jù)。各類軟件系統(tǒng),其共同點(diǎn)是,需要在模塊間傳遞特定的事件通知或數(shù)據(jù)信息,以協(xié)同完成工作。根據(jù)不同軟件系統(tǒng)的設(shè)計(jì),軟件模塊的通信可以分類為進(jìn)程間通信和進(jìn)程內(nèi)通信。

    ⑴ 進(jìn)程間通信

    軟件模塊分散在不同的進(jìn)程中,模塊需要通過進(jìn)程間的通信手段來傳遞事件通知和數(shù)據(jù)信息。通常操作系統(tǒng)提供的進(jìn)程間通信(IPC)方式主要有:信號(hào)、信號(hào)量、消息隊(duì)列、管道、共享內(nèi)存、套接字等。其中,信號(hào)、信號(hào)量、消息隊(duì)列可以用于傳遞事件通知,管道、共享內(nèi)存可以用于傳遞數(shù)據(jù)信息,套接字的應(yīng)用更為靈活,可以同時(shí)用于事件和數(shù)據(jù)的傳遞[2]。此外,在Windows操作系統(tǒng)中,還可以利用窗口消息來傳遞事件。雖然操作系統(tǒng)提供了多種進(jìn)程間通信手段,但是大都與操作系統(tǒng)底層接口緊密相關(guān),如果直接使用,在兼容性和跨平臺(tái)方面有所不足。

    ⑵ 進(jìn)程內(nèi)通信

    軟件模塊集中在一個(gè)進(jìn)程中,模塊通過進(jìn)程內(nèi)的通信手段來傳遞事件通知和數(shù)據(jù)信息。有別于進(jìn)程間通信中各個(gè)模塊受進(jìn)程空間隔離,在同一進(jìn)程內(nèi)的模塊可以共享進(jìn)程的內(nèi)存數(shù)據(jù),可以相互調(diào)用模塊接口。因此,進(jìn)程內(nèi)通信方式比較靈活,可以引用模塊的指針來訪問模塊,也可以向模塊發(fā)消息??紤]到軟件開發(fā)的規(guī)范,需要對(duì)進(jìn)程內(nèi)通信形式進(jìn)行統(tǒng)一約定。

    2 軟件通信框架設(shè)計(jì)

    2.1 統(tǒng)一的事件模型設(shè)計(jì)

    軟件通信的主要任務(wù)就是在模塊間傳遞數(shù)據(jù)。其首要問題是如何對(duì)要傳遞的數(shù)據(jù)進(jìn)行規(guī)范描述,我們必須建立一個(gè)適用于進(jìn)程內(nèi),同時(shí)也適用于進(jìn)程間傳遞的統(tǒng)一事件模型。這個(gè)事件模型并不是具體傳遞的事件數(shù)據(jù),它是一個(gè)規(guī)范標(biāo)準(zhǔn),一個(gè)模板,所有參與通信的模塊必須圍繞這個(gè)事件模型,定義自己需要接收或發(fā)送的具體事件,最終模塊間傳遞的是這些已定義的事件,雖然它們代表的信息各不相同,但都是基于同一個(gè)事件模型,有著相同的規(guī)范描述。圖1描述了進(jìn)程間和進(jìn)程內(nèi)事件傳遞的模型結(jié)構(gòu)。

    圖1事件模型結(jié)構(gòu)圖

    一個(gè)事件模型需要包含如下基本信息。

    事件標(biāo)識(shí)ID:一個(gè)整數(shù),表明這個(gè)事件的含義;

    發(fā)送模塊標(biāo)識(shí)ID:一個(gè)整數(shù),標(biāo)識(shí)是從哪個(gè)模塊發(fā)送的事件;

    接受模塊標(biāo)識(shí)ID:一個(gè)整數(shù),標(biāo)識(shí)事件應(yīng)由哪個(gè)模塊接收;

    事件攜帶的信息:一個(gè)有限長(zhǎng)度的數(shù)據(jù)緩沖,可以攜帶和事件標(biāo)識(shí)ID相關(guān)的附加信息。

    軟件模塊開發(fā)人員以事件模型為基礎(chǔ),定義模塊間需要傳遞的具體事件,每個(gè)事件包括特定的事件標(biāo)識(shí)。

    ID:需要攜帶的信息及信息在數(shù)據(jù)緩沖中的存放方式。當(dāng)需要發(fā)送事件時(shí),構(gòu)造一個(gè)事件對(duì)象,設(shè)置發(fā)送模塊ID和接收模塊ID,再利用通信框架提供的發(fā)送接口把事件發(fā)送出去,由通信框架將事件傳遞到接收模塊中。

    2.2 基于事件模型的通信框架設(shè)計(jì)

    事件模型是對(duì)要傳遞數(shù)據(jù)的規(guī)范描述,那么使用什么載體和機(jī)制來傳遞事件則是軟件通信的另一個(gè)重要部分。圍繞事件模型,我們需要建立軟件通信框架,為事件在模塊間的傳遞提供基礎(chǔ)支撐。軟件通信框架是一組通用組件以及使用規(guī)約的集合,它定義了最基本的事件傳遞流程,并提供相關(guān)調(diào)用接口,軟件模塊要依據(jù)通信框架的使用規(guī)約,進(jìn)行具體的事件發(fā)送和接收工作。按照事件傳遞的途徑不同,可以分為進(jìn)程間通信和進(jìn)程內(nèi)通信兩種框架,它們之間有相通之處,但是在事件載體方面有所區(qū)別。

    ⑴ 進(jìn)程間通信框架

    當(dāng)各個(gè)模塊存在于獨(dú)立的進(jìn)程中時(shí),需要在進(jìn)程間傳遞事件。進(jìn)程間通信框架采用服務(wù)器/客戶端模式:首先存在一個(gè)通信服務(wù)進(jìn)程,各個(gè)模塊進(jìn)程啟動(dòng)后,向通信服務(wù)進(jìn)程注冊(cè)自己;然后,各個(gè)模塊進(jìn)程向通信服務(wù)進(jìn)程發(fā)送自己的事件,由通信服務(wù)根據(jù)事件的接收者再把事件轉(zhuǎn)發(fā)到對(duì)應(yīng)的接收模塊上;最后,當(dāng)模塊進(jìn)程退出時(shí),要向通信服務(wù)注銷自己。進(jìn)程間通信框架結(jié)構(gòu)如圖2所示。

    [通信組件][通信服務(wù)進(jìn)程] [通信組件] [通信組件][發(fā)送事件模塊(進(jìn)程A)][接收事件模塊(進(jìn)程B)] [event] [操作系統(tǒng)

    底層載體][event]

    圖2進(jìn)程間通信框架結(jié)構(gòu)圖

    此外,考慮到通信框架的通用性,設(shè)計(jì)了通用的進(jìn)程間通信組件。模塊進(jìn)程和服務(wù)進(jìn)程都通過通信組件來傳遞事件,由通信組件選擇合適的操作系統(tǒng)的底層功能作為事件的載體,進(jìn)行傳送,這樣可以在通信框架層次上隱藏底層細(xì)節(jié)。

    ⑵ 進(jìn)程內(nèi)通信框架

    當(dāng)各個(gè)模塊存在于同一個(gè)進(jìn)程中時(shí),需要在進(jìn)程內(nèi)傳遞事件。進(jìn)程內(nèi)通信框架和進(jìn)程間框架類似,也是采用服務(wù)/客戶端模式,其特別之處是服務(wù)端和客戶端都在一個(gè)進(jìn)程內(nèi)部。同時(shí),利用進(jìn)程內(nèi)可以共享數(shù)據(jù)的特點(diǎn),省略了通信組件這個(gè)層次,各個(gè)模塊直接向通信服務(wù)對(duì)象注冊(cè)自己,并直接向通信服務(wù)對(duì)象發(fā)送事件,再由其將事件轉(zhuǎn)發(fā)到相關(guān)接收模塊。這樣既保持了進(jìn)程間和進(jìn)程內(nèi)通信框架的結(jié)構(gòu)統(tǒng)一性,又提高了進(jìn)程內(nèi)的通信效率。進(jìn)程內(nèi)通信框架結(jié)構(gòu)如圖3所示。

    [通信服務(wù)對(duì)象(進(jìn)程內(nèi))][發(fā)送事件模塊(進(jìn)程內(nèi))][接收事件模塊(進(jìn)程內(nèi))][event][event]

    圖3進(jìn)程內(nèi)通信框架結(jié)構(gòu)圖

    3 軟件通信框架實(shí)現(xiàn)

    基于上述軟件通信框架的設(shè)計(jì),使用面向?qū)ο蟮拈_發(fā)方法(C++編程語言),在Qt開發(fā)庫(kù)的基礎(chǔ)上進(jìn)行軟件通信框架的開發(fā)實(shí)現(xiàn)。面向?qū)ο箝_發(fā)方法以對(duì)象為基礎(chǔ),利用特定的軟件工具直接完成從對(duì)象客體的描述到軟件結(jié)構(gòu)之間的轉(zhuǎn)換,解決了傳統(tǒng)結(jié)構(gòu)化開發(fā)方法中客觀世界描述工具與軟件結(jié)構(gòu)的不一致性問題,縮短了開發(fā)周期,解決了從分析和設(shè)計(jì)到軟件模塊結(jié)構(gòu)之間多次轉(zhuǎn)換映射的繁雜過程,是一種很有發(fā)展前途的系統(tǒng)開發(fā)方法[3]。Qt是一個(gè)先進(jìn)的,面向?qū)ο蟮?,跨平臺(tái)的圖形開發(fā)庫(kù),其主要優(yōu)點(diǎn)是: 優(yōu)良的跨平臺(tái)特性,支持Windows、Linux操作系統(tǒng);面向?qū)ο筇匦裕己梅庋b機(jī)制使得Qt的模塊化程度非常高,可重用性較好,對(duì)于用戶開發(fā)來說是非常方便的;豐富的API,包括多達(dá)250個(gè)以上的具有強(qiáng)大功能的C++類[4]。

    3.1 事件模型實(shí)現(xiàn)

    Qt本身包含一套事件模型,我們根據(jù)自己事件模型的設(shè)計(jì),在Qt事件的基礎(chǔ)上,利用面向?qū)ο蟮呐缮匦訹5],進(jìn)行擴(kuò)展,形成事件模型NewsEvent,整個(gè)通信框架都使用NewsEvent進(jìn)行通信,主要實(shí)現(xiàn)代碼如下:

    #define NEInvalid -1 //無效事件ID

    //模塊的identify_key,也作為_senderId or_recverId:

    #define NewsMain_ID0

    #define Area_ID 1

    #define Seis_ID2

    class NewsEvent:public QEvent //在QEvent基礎(chǔ)上進(jìn)行擴(kuò)展

    {//下邊是進(jìn)程間需要傳遞的核心數(shù)據(jù),一共132個(gè)字節(jié)

    (32位系統(tǒng))

    long_senderId; //發(fā)送模塊的identify_key

    int_recverId; //接收模塊的identify_key,發(fā)給所有帶這個(gè)識(shí)別

    key的模塊

    int_eventId; //事件ID:普通事件ID必須>0,<=0的事件ID用作

    特殊系統(tǒng)管理

    union EventData//事件攜帶的信息,可以根據(jù)事件id約定如何

    使用其中的相關(guān)數(shù)據(jù)項(xiàng)

    {char charValue[120];

    short shortValue[60];

    int intValue[30];

    float floatValue[30];

    double doubleValue[15];

    }_eventData;

    };

    在事件ID的定義方面,提供了統(tǒng)一的事件ID定義函數(shù),可以對(duì)不同模塊的事件ID進(jìn)行管理,避免不同模塊間事件ID的沖突。

    //NEMAKER是事件ID生成器:用模塊標(biāo)志頭組合內(nèi)部ID,

    生成惟一的事件ID

    #define NEMAKER(frame,id) NEMAKER_p(frame,id)

    #define NEMAKER_p(frame,id) frame##id

    /****各類模塊事件標(biāo)志頭****/

    #define NENewsMain 10

    #define NEArea 11

    #define NESeis 12

    //###系統(tǒng)管理###

    #define NEClientRegister -998 //client向通信服務(wù)進(jìn)程注冊(cè)自己

    #define NEClientUnregister -999 //client向通信服務(wù)進(jìn)程注銷自己

    //###剖面模塊###

    #define NEMousePositionInSection NEMAKER(NESeis,0)

    //鼠標(biāo)在剖面上的位置

    #define NEInterpretDataChangeInSection NEMAKER(NESeis,1)

    //剖面上解釋數(shù)據(jù)變動(dòng)

    各個(gè)模塊根據(jù)自己的需求,定義自己的事件ID,并約定好事件所攜帶的信息,以NewsEvent對(duì)象的形式通過框架接口將事件發(fā)送出去,接收時(shí),通過框架接口接收NewsEvent對(duì)象,并進(jìn)行處理。

    3.2 通信框架實(shí)現(xiàn)

    基于Qt的事件傳遞機(jī)制,開發(fā)軟件通信框架。因?yàn)镼t提供了完善的對(duì)象間(同一進(jìn)程內(nèi))傳遞事件的機(jī)制,通信框架可以把軟件模塊作為對(duì)象,利用Qt進(jìn)行事件傳遞。我們的主要工作是實(shí)現(xiàn)發(fā)送/接收事件的標(biāo)準(zhǔn)接口,進(jìn)程間通信組件,進(jìn)程間通信服務(wù)程序及進(jìn)程內(nèi)通信服務(wù)對(duì)象。

    ⑴ 發(fā)送/接收事件標(biāo)準(zhǔn)接口

    void SendNewsEvent(QObject* target,NewsEvent* event); //發(fā)送事件

    virtual void ProcessNewsEvent(NewsEvent* event); //接收事件

    所有需要發(fā)送事件的模塊都使用SendNewsEvent發(fā)送事件,所有需要接收事件的模塊都重新實(shí)現(xiàn)ProcessNewsEvent虛函數(shù),進(jìn)行事件處理。在進(jìn)程間通信中,SendNewsEvent函數(shù)中的target是模塊自己的通信組件,由通信組件將事件發(fā)送給通信服務(wù)程序。在進(jìn)程內(nèi)通信中,target是進(jìn)程內(nèi)惟一的通信服務(wù)對(duì)象。

    ⑵ 進(jìn)程間通信組件

    進(jìn)程間通信組件用于進(jìn)程間通信框架,它是模塊與通信服務(wù)程序的連接橋梁,模塊通過通信組件向通信服務(wù)程序注冊(cè)自己,發(fā)送事件,接收事件,通信服務(wù)程序通過通信組件向模塊轉(zhuǎn)發(fā)事件??紤]到跨平臺(tái)的兼容性,通信組件使用套接字(Socket)作為事件的載體,在模塊和通信服務(wù)程序間傳遞數(shù)據(jù)。

    在進(jìn)程間通信中,模塊并不是直接將NewsEvent發(fā)送給通信服務(wù)程序,而是發(fā)送給進(jìn)程間通信組件,由其將事件發(fā)送到通信服務(wù)程序,同樣,通信服務(wù)程序發(fā)來的事件也是由通信組件接收,再發(fā)送給目標(biāo)模塊。

    void ClientRegister(); //模塊調(diào)用其向通信服務(wù)程序進(jìn)行注冊(cè)

    void ClientUnregister(); //模塊調(diào)用其向通信服務(wù)程序進(jìn)行注銷

    void TransNewsEvent(NewsEvent* event,QHostAddress &ip,

    quint16 port); //發(fā)送事件到服務(wù)程序

    void ReceiveNewsEvent(NewsEvent* event); //從服務(wù)程序接收事件

    ⑶ 通信服務(wù)程序/通信服務(wù)對(duì)象

    通信服務(wù)程序和通信服務(wù)對(duì)象的主要功能相同,都是管理模塊的注冊(cè)與注銷,并負(fù)責(zé)把發(fā)送給它的事件轉(zhuǎn)發(fā)到已注冊(cè)的相關(guān)模塊中。區(qū)別在于通信服務(wù)程序管理進(jìn)程間的模塊通信,而通信服務(wù)對(duì)象管理進(jìn)程內(nèi)的模塊通信。

    void RegisterModule(); //模塊注冊(cè)

    void UnregisterModule(); //模塊注銷

    void DispatchNewsEvent(NewsEvent* event); //轉(zhuǎn)發(fā)模塊事件

    事件在進(jìn)程間和進(jìn)程內(nèi)傳遞方式的區(qū)別由通信框架進(jìn)行封裝,對(duì)模塊而言,它面向的是統(tǒng)一的軟件通信框架,只需要按照框架規(guī)范開發(fā),就可以進(jìn)行通信。

    4 結(jié)束語

    本文描述了一種軟件通信框架的設(shè)計(jì)過程,并給出了一個(gè)較為簡(jiǎn)單的通信框架實(shí)現(xiàn)。它基于面向?qū)ο蟮脑O(shè)計(jì)方法,使用C++編程語言,利用Qt開發(fā)庫(kù)來進(jìn)行實(shí)現(xiàn)。使用基于統(tǒng)一事件模型的軟件通信框架可以減少模塊通信復(fù)雜度,縮短軟件通信功能開發(fā)周期,提高軟件可維護(hù)性,而且利于擴(kuò)展和移植。然而面對(duì)軟件系統(tǒng)中繁多的通信需求,目前還無法在本框架內(nèi)考慮周全,只有在不斷迭代細(xì)化框架的過程中,才能使問題逐一明了。目前,此軟件通信框架已在“NEWS油氣勘探綜合解釋系統(tǒng)”中得到應(yīng)用,能完全滿足解釋系統(tǒng)需求,應(yīng)用效果較好。

    參考文獻(xiàn):

    [1] 王宏琳.地球物理軟件體系結(jié)構(gòu)研究[J].石油地球物理勘探,2008.43

    (5):606-611

    [2] 李卓桓.Linux網(wǎng)絡(luò)編程[M].機(jī)械工業(yè)出版社,2000.

    [3] C.Thomas Wu.面向?qū)ο蟪绦蛟O(shè)計(jì)導(dǎo)論[M].電子工業(yè)出版社,2000.

    [4] Xteam軟件技術(shù)有限公司.Qt程序設(shè)計(jì)[M].清華大學(xué)出版社,2002.

    [5] 錢能.C++程序設(shè)計(jì)教程[M].清華大學(xué)出版社,1999.

    猜你喜歡
    面向?qū)ο?/a>
    面向?qū)ο蠓椒ㄔ谒罾銹LC編程中應(yīng)用分析
    電子制作(2019年7期)2019-04-25 13:18:00
    基于python的面向?qū)ο髠鞲衅鲙?kù)類抽象方法
    面向?qū)ο蟮挠?jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)軟件系統(tǒng)的開發(fā)
    面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
    面向?qū)ο骔eb開發(fā)編程語言的的評(píng)估方法
    基于面向?qū)ο蟮腛ffice評(píng)測(cè)系統(tǒng)的分析
    峰叢洼地農(nóng)作物面向?qū)ο笮畔⑻崛∫?guī)則集
    遙感信息(2015年3期)2015-12-13 07:26:54
    基于E-cognition的面向?qū)ο蟮母叻直媛蔬b感圖像分類研究
    基于面向?qū)ο蟮能囕v管理軟件的研制與開發(fā)
    面向?qū)ο蟮腟oS體系結(jié)構(gòu)建模方法及應(yīng)用
    51午夜福利影视在线观看| 欧美亚洲日本最大视频资源| 99re在线观看精品视频| 热re99久久国产66热| 我的亚洲天堂| 午夜成年电影在线免费观看| 在线观看日韩欧美| 纯流量卡能插随身wifi吗| 亚洲av成人一区二区三| 久久久久国产一级毛片高清牌| 久久久国产一区二区| 国产aⅴ精品一区二区三区波| 亚洲 欧美一区二区三区| 午夜日韩欧美国产| 搡老熟女国产l中国老女人| 欧美精品啪啪一区二区三区| 老熟妇乱子伦视频在线观看| 又紧又爽又黄一区二区| 精品一区二区三区视频在线观看免费 | 精品亚洲成国产av| 久久狼人影院| 捣出白浆h1v1| 久久中文字幕人妻熟女| 久久精品成人免费网站| 久久性视频一级片| 夜夜夜夜夜久久久久| 精品国产乱子伦一区二区三区| 亚洲欧美精品综合一区二区三区| 国产高清激情床上av| 天堂中文最新版在线下载| 免费不卡黄色视频| 亚洲av成人一区二区三| 色在线成人网| 亚洲av电影在线进入| 久久香蕉激情| 老司机深夜福利视频在线观看| 在线十欧美十亚洲十日本专区| 久久精品国产a三级三级三级| 亚洲久久久国产精品| 中国美女看黄片| 欧美日韩亚洲国产一区二区在线观看 | 欧美成人午夜精品| 欧美老熟妇乱子伦牲交| 如日韩欧美国产精品一区二区三区| 欧洲精品卡2卡3卡4卡5卡区| 亚洲精品一卡2卡三卡4卡5卡| 搡老岳熟女国产| 黄色视频,在线免费观看| 国产成人av教育| 精品国内亚洲2022精品成人 | 亚洲av日韩在线播放| 亚洲成国产人片在线观看| 精品国产国语对白av| 女人被躁到高潮嗷嗷叫费观| 欧美激情极品国产一区二区三区| 日韩一卡2卡3卡4卡2021年| 丁香六月欧美| 国产男靠女视频免费网站| 欧美日韩中文字幕国产精品一区二区三区 | 亚洲精品中文字幕在线视频| 亚洲中文av在线| 久久香蕉激情| 怎么达到女性高潮| av线在线观看网站| 精品久久久久久久毛片微露脸| 一进一出抽搐动态| 国产亚洲精品一区二区www | 熟女少妇亚洲综合色aaa.| 香蕉久久夜色| av在线播放免费不卡| 久久精品国产亚洲av高清一级| 久久久久视频综合| 久久ye,这里只有精品| 中文字幕色久视频| 日韩 欧美 亚洲 中文字幕| 老鸭窝网址在线观看| 亚洲精品美女久久久久99蜜臀| 俄罗斯特黄特色一大片| 日韩人妻精品一区2区三区| 国产麻豆69| 两个人看的免费小视频| 看免费av毛片| 满18在线观看网站| 日韩欧美免费精品| 国产av又大| 日韩大码丰满熟妇| 99热网站在线观看| 一级片'在线观看视频| 91精品国产国语对白视频| 又黄又爽又免费观看的视频| 国产亚洲av高清不卡| 亚洲午夜理论影院| 妹子高潮喷水视频| a级片在线免费高清观看视频| 国产伦人伦偷精品视频| 色精品久久人妻99蜜桃| 首页视频小说图片口味搜索| 中文字幕av电影在线播放| 成年版毛片免费区| 欧美 日韩 精品 国产| 亚洲成av片中文字幕在线观看| 在线观看午夜福利视频| 国产精品 欧美亚洲| 欧美乱色亚洲激情| 美女视频免费永久观看网站| 亚洲欧美色中文字幕在线| 亚洲精品国产精品久久久不卡| 欧美日韩乱码在线| 久久香蕉激情| 国产片内射在线| 欧美日韩瑟瑟在线播放| 妹子高潮喷水视频| 人妻 亚洲 视频| 成在线人永久免费视频| 一级,二级,三级黄色视频| 久久久久久亚洲精品国产蜜桃av| 91大片在线观看| 日韩免费高清中文字幕av| 久久久久久免费高清国产稀缺| 国产亚洲精品第一综合不卡| 国产高清激情床上av| 亚洲精品美女久久av网站| 精品免费久久久久久久清纯 | 日韩免费高清中文字幕av| 欧美 日韩 精品 国产| 曰老女人黄片| 麻豆乱淫一区二区| 999精品在线视频| 人妻 亚洲 视频| 久久香蕉国产精品| 亚洲国产精品一区二区三区在线| 男人操女人黄网站| 日本撒尿小便嘘嘘汇集6| 91麻豆av在线| 黄色丝袜av网址大全| 50天的宝宝边吃奶边哭怎么回事| 午夜日韩欧美国产| 国产精品国产高清国产av | 亚洲国产精品一区二区三区在线| 青草久久国产| 熟女少妇亚洲综合色aaa.| 咕卡用的链子| 大型黄色视频在线免费观看| 99热只有精品国产| 亚洲精华国产精华精| 国产精品免费大片| 曰老女人黄片| 啦啦啦免费观看视频1| 欧美成人午夜精品| 国产淫语在线视频| 欧美日本中文国产一区发布| 国产在线一区二区三区精| 国产91精品成人一区二区三区| 每晚都被弄得嗷嗷叫到高潮| 亚洲伊人色综图| 9热在线视频观看99| 国产真人三级小视频在线观看| 亚洲精品中文字幕在线视频| 丁香欧美五月| 大型黄色视频在线免费观看| 国产亚洲欧美在线一区二区| 别揉我奶头~嗯~啊~动态视频| av一本久久久久| 欧美乱码精品一区二区三区| 亚洲精品一卡2卡三卡4卡5卡| av中文乱码字幕在线| 中文字幕人妻丝袜一区二区| 亚洲av第一区精品v没综合| 国产国语露脸激情在线看| 久久人妻av系列| 成人特级黄色片久久久久久久| avwww免费| 免费女性裸体啪啪无遮挡网站| 操出白浆在线播放| 亚洲综合色网址| 国产人伦9x9x在线观看| 女性被躁到高潮视频| 亚洲五月色婷婷综合| 国产亚洲精品久久久久久毛片 | 最新的欧美精品一区二区| 18禁黄网站禁片午夜丰满| 国产精品免费大片| 久久 成人 亚洲| 老熟妇乱子伦视频在线观看| 大型黄色视频在线免费观看| av视频免费观看在线观看| 成人av一区二区三区在线看| av天堂在线播放| 久久中文看片网| 亚洲七黄色美女视频| 精品久久蜜臀av无| 欧美国产精品va在线观看不卡| 精品一区二区三卡| 亚洲av欧美aⅴ国产| 欧美精品av麻豆av| 精品国产亚洲在线| 国产精品二区激情视频| 欧美乱妇无乱码| 午夜免费鲁丝| 国产免费男女视频| 亚洲国产毛片av蜜桃av| 国产亚洲精品久久久久5区| 亚洲avbb在线观看| 侵犯人妻中文字幕一二三四区| 亚洲片人在线观看| 亚洲五月天丁香| 国产精品久久电影中文字幕 | 精品久久久久久,| 中文字幕人妻丝袜制服| 成年女人毛片免费观看观看9 | 啦啦啦免费观看视频1| 亚洲精品中文字幕一二三四区| av网站在线播放免费| 亚洲色图av天堂| 国产真人三级小视频在线观看| 人人妻人人澡人人爽人人夜夜| 一区二区三区精品91| 免费久久久久久久精品成人欧美视频| 午夜激情av网站| 80岁老熟妇乱子伦牲交| 午夜亚洲福利在线播放| 在线观看免费午夜福利视频| 国产在线精品亚洲第一网站| 热re99久久精品国产66热6| 亚洲,欧美精品.| 亚洲人成电影观看| 在线播放国产精品三级| 国产1区2区3区精品| 亚洲精品成人av观看孕妇| 在线观看一区二区三区激情| 免费女性裸体啪啪无遮挡网站| 老司机午夜十八禁免费视频| 一级毛片精品| 亚洲欧美精品综合一区二区三区| av线在线观看网站| 久久亚洲精品不卡| 亚洲九九香蕉| 中国美女看黄片| 国产精品秋霞免费鲁丝片| 免费久久久久久久精品成人欧美视频| 成人永久免费在线观看视频| 欧美+亚洲+日韩+国产| 国产精品一区二区在线观看99| 精品久久蜜臀av无| 欧美人与性动交α欧美软件| 日本五十路高清| 黄色视频不卡| 午夜精品久久久久久毛片777| 在线播放国产精品三级| 免费在线观看视频国产中文字幕亚洲| 婷婷成人精品国产| 亚洲久久久国产精品| 超色免费av| 亚洲国产中文字幕在线视频| 成年版毛片免费区| a级片在线免费高清观看视频| 大香蕉久久成人网| 丰满人妻熟妇乱又伦精品不卡| 欧美国产精品va在线观看不卡| 亚洲国产毛片av蜜桃av| 欧美激情高清一区二区三区| 99热国产这里只有精品6| 国产1区2区3区精品| 99国产极品粉嫩在线观看| 90打野战视频偷拍视频| 视频区图区小说| 亚洲情色 制服丝袜| 欧美日韩亚洲高清精品| 国产欧美日韩精品亚洲av| 精品熟女少妇八av免费久了| 多毛熟女@视频| 欧美激情久久久久久爽电影 | 欧美日韩视频精品一区| 国产精品 欧美亚洲| 成年人午夜在线观看视频| 女人高潮潮喷娇喘18禁视频| 亚洲中文av在线| 后天国语完整版免费观看| 黑人猛操日本美女一级片| 水蜜桃什么品种好| 亚洲国产看品久久| 99国产综合亚洲精品| 精品久久久久久电影网| 欧美日韩国产mv在线观看视频| 乱人伦中国视频| 高清视频免费观看一区二区| 免费人成视频x8x8入口观看| 两人在一起打扑克的视频| 一边摸一边抽搐一进一出视频| av中文乱码字幕在线| 欧美日韩中文字幕国产精品一区二区三区 | 精品一区二区三卡| 国产精品.久久久| 欧美日韩一级在线毛片| 久久久久久久久免费视频了| 女同久久另类99精品国产91| 久久亚洲精品不卡| 亚洲av熟女| 777米奇影视久久| 亚洲专区字幕在线| 自线自在国产av| 捣出白浆h1v1| 亚洲色图 男人天堂 中文字幕| 黑人欧美特级aaaaaa片| 国产精品亚洲一级av第二区| 亚洲欧美激情在线| 搡老岳熟女国产| 丰满的人妻完整版| 久久久国产精品麻豆| 亚洲av欧美aⅴ国产| 99riav亚洲国产免费| 操出白浆在线播放| 日日爽夜夜爽网站| 动漫黄色视频在线观看| 亚洲成人国产一区在线观看| 黄片大片在线免费观看| 最新美女视频免费是黄的| 侵犯人妻中文字幕一二三四区| 一进一出好大好爽视频| 国产精品久久视频播放| 午夜久久久在线观看| 欧美精品亚洲一区二区| av欧美777| 亚洲五月天丁香| 最新美女视频免费是黄的| 中文亚洲av片在线观看爽 | 麻豆国产av国片精品| 真人做人爱边吃奶动态| tube8黄色片| 一边摸一边抽搐一进一小说 | 人妻 亚洲 视频| 亚洲五月婷婷丁香| 男男h啪啪无遮挡| 人人妻,人人澡人人爽秒播| 黄片小视频在线播放| av网站免费在线观看视频| 国内久久婷婷六月综合欲色啪| av电影中文网址| 老司机靠b影院| 老司机影院毛片| 在线观看免费午夜福利视频| av国产精品久久久久影院| 天堂俺去俺来也www色官网| 国产主播在线观看一区二区| 国产伦人伦偷精品视频| 亚洲欧美激情综合另类| 免费一级毛片在线播放高清视频 | 国产精品秋霞免费鲁丝片| 亚洲国产精品合色在线| 欧美精品高潮呻吟av久久| 欧美日韩亚洲综合一区二区三区_| 性少妇av在线| 午夜91福利影院| 精品久久久久久,| 国产亚洲精品久久久久5区| 老司机午夜福利在线观看视频| 国产亚洲精品一区二区www | 日本一区二区免费在线视频| 国产成人av激情在线播放| 久久婷婷成人综合色麻豆| 亚洲精品国产精品久久久不卡| 美女 人体艺术 gogo| 国产aⅴ精品一区二区三区波| 一进一出抽搐gif免费好疼 | 午夜免费观看网址| 国产欧美日韩一区二区精品| 中文字幕高清在线视频| 日韩成人在线观看一区二区三区| 亚洲精品中文字幕一二三四区| 午夜成年电影在线免费观看| 亚洲五月色婷婷综合| 国产亚洲欧美在线一区二区| 日韩有码中文字幕| 女人爽到高潮嗷嗷叫在线视频| 亚洲av成人不卡在线观看播放网| 黄色视频不卡| 国产精品美女特级片免费视频播放器 | 亚洲av电影在线进入| 色婷婷av一区二区三区视频| 色婷婷久久久亚洲欧美| 在线永久观看黄色视频| tocl精华| 成人精品一区二区免费| 99re在线观看精品视频| 免费看十八禁软件| 国产99久久九九免费精品| 午夜免费成人在线视频| а√天堂www在线а√下载 | 天天躁狠狠躁夜夜躁狠狠躁| 亚洲国产精品一区二区三区在线| 国产精品永久免费网站| 成人av一区二区三区在线看| 18禁美女被吸乳视频| 99热国产这里只有精品6| 看片在线看免费视频| 99国产极品粉嫩在线观看| 一二三四社区在线视频社区8| 18禁裸乳无遮挡动漫免费视频| 精品卡一卡二卡四卡免费| 美女视频免费永久观看网站| 99精品欧美一区二区三区四区| 日韩人妻精品一区2区三区| svipshipincom国产片| 99国产精品一区二区三区| 国产免费av片在线观看野外av| 一夜夜www| 欧洲精品卡2卡3卡4卡5卡区| 变态另类成人亚洲欧美熟女 | 多毛熟女@视频| 激情视频va一区二区三区| 日韩熟女老妇一区二区性免费视频| 久久精品国产99精品国产亚洲性色 | 香蕉久久夜色| 黄色女人牲交| 午夜精品久久久久久毛片777| 亚洲成人手机| videos熟女内射| 国产亚洲精品久久久久久毛片 | 日韩一卡2卡3卡4卡2021年| 一级黄色大片毛片| www.999成人在线观看| 夜夜夜夜夜久久久久| 午夜激情av网站| 日韩三级视频一区二区三区| 国产成人免费观看mmmm| 女性被躁到高潮视频| 日韩欧美一区二区三区在线观看 | 久久久国产成人精品二区 | 一本大道久久a久久精品| 精品人妻在线不人妻| 亚洲色图 男人天堂 中文字幕| 亚洲av成人一区二区三| 国产不卡一卡二| 亚洲五月婷婷丁香| 美女福利国产在线| 精品久久久久久,| 亚洲国产欧美一区二区综合| 淫妇啪啪啪对白视频| 亚洲伊人色综图| 色精品久久人妻99蜜桃| 丁香六月欧美| 成年动漫av网址| 国产欧美日韩一区二区精品| 亚洲午夜理论影院| 巨乳人妻的诱惑在线观看| 女人高潮潮喷娇喘18禁视频| 色精品久久人妻99蜜桃| 午夜福利影视在线免费观看| 亚洲片人在线观看| 日本一区二区免费在线视频| 老熟妇乱子伦视频在线观看| 亚洲精品国产精品久久久不卡| 老司机福利观看| 一进一出抽搐gif免费好疼 | 大香蕉久久网| 多毛熟女@视频| 欧美+亚洲+日韩+国产| 视频在线观看一区二区三区| 在线观看舔阴道视频| 宅男免费午夜| 欧美黄色淫秽网站| 超碰97精品在线观看| 男女之事视频高清在线观看| 免费在线观看日本一区| 日韩欧美一区二区三区在线观看 | 啦啦啦视频在线资源免费观看| 亚洲专区中文字幕在线| 免费高清在线观看日韩| 国产1区2区3区精品| 亚洲成人免费av在线播放| 亚洲av日韩在线播放| 亚洲欧美日韩高清在线视频| 天天躁夜夜躁狠狠躁躁| 国产成人精品无人区| 久久影院123| 老熟妇仑乱视频hdxx| а√天堂www在线а√下载 | 日韩制服丝袜自拍偷拍| 黄频高清免费视频| 日日夜夜操网爽| 免费看a级黄色片| 欧美日韩成人在线一区二区| 女人爽到高潮嗷嗷叫在线视频| 人妻一区二区av| 校园春色视频在线观看| 国产精品影院久久| 91国产中文字幕| www日本在线高清视频| av有码第一页| 久久人妻av系列| 天天影视国产精品| 操出白浆在线播放| 国产视频一区二区在线看| 欧美日韩乱码在线| 亚洲色图综合在线观看| 一进一出好大好爽视频| 婷婷丁香在线五月| 欧美av亚洲av综合av国产av| e午夜精品久久久久久久| 免费在线观看影片大全网站| 欧美日韩成人在线一区二区| av不卡在线播放| 亚洲精品一二三| 女人被狂操c到高潮| 欧美日韩亚洲高清精品| 亚洲精华国产精华精| 91精品国产国语对白视频| 久久精品国产清高在天天线| 精品欧美一区二区三区在线| 悠悠久久av| 亚洲七黄色美女视频| 久久国产亚洲av麻豆专区| 久久精品国产清高在天天线| 亚洲免费av在线视频| 丝袜在线中文字幕| 午夜福利在线观看吧| 欧美人与性动交α欧美软件| 黄色视频不卡| 久久午夜综合久久蜜桃| 巨乳人妻的诱惑在线观看| 国产成人av教育| 妹子高潮喷水视频| 亚洲国产精品一区二区三区在线| 一级毛片精品| 18禁国产床啪视频网站| 大片电影免费在线观看免费| 国产亚洲精品第一综合不卡| 青草久久国产| 国产乱人伦免费视频| 久久人妻福利社区极品人妻图片| 精品国内亚洲2022精品成人 | 在线天堂中文资源库| 亚洲精品久久午夜乱码| 欧美黑人精品巨大| 色综合欧美亚洲国产小说| 国产男靠女视频免费网站| 午夜老司机福利片| 老司机靠b影院| 午夜精品在线福利| 在线观看www视频免费| 欧美亚洲 丝袜 人妻 在线| 下体分泌物呈黄色| 日本a在线网址| 欧美 亚洲 国产 日韩一| 91av网站免费观看| 高清欧美精品videossex| 国产成人精品久久二区二区91| 老司机在亚洲福利影院| 一边摸一边抽搐一进一小说 | 99国产综合亚洲精品| av不卡在线播放| xxx96com| 亚洲成人国产一区在线观看| 高清在线国产一区| 国产精品国产av在线观看| 久久午夜综合久久蜜桃| a级片在线免费高清观看视频| 色尼玛亚洲综合影院| av在线播放免费不卡| 狂野欧美激情性xxxx| 免费看a级黄色片| 黄色片一级片一级黄色片| 12—13女人毛片做爰片一| 一区在线观看完整版| 国产亚洲一区二区精品| 大香蕉久久成人网| 亚洲中文字幕日韩| 免费看十八禁软件| 九色亚洲精品在线播放| 亚洲av日韩在线播放| 亚洲va日本ⅴa欧美va伊人久久| 国产精品一区二区在线观看99| 美女福利国产在线| 美女高潮到喷水免费观看| 日日摸夜夜添夜夜添小说| 十八禁网站免费在线| 怎么达到女性高潮| 国产一区二区三区综合在线观看| 脱女人内裤的视频| 国产欧美亚洲国产| 精品国内亚洲2022精品成人 | 男女之事视频高清在线观看| 久久精品亚洲精品国产色婷小说| 91av网站免费观看| 精品国产国语对白av| 天天添夜夜摸| 欧美乱色亚洲激情| 在线看a的网站| 美女国产高潮福利片在线看| 交换朋友夫妻互换小说| 亚洲欧美精品综合一区二区三区| cao死你这个sao货| 欧美 亚洲 国产 日韩一| 成在线人永久免费视频| 香蕉久久夜色| 国产精品一区二区在线观看99| 精品国内亚洲2022精品成人 | 久久99一区二区三区| 一本综合久久免费| 俄罗斯特黄特色一大片| 亚洲成人手机| 日韩熟女老妇一区二区性免费视频| 亚洲av片天天在线观看| 国产午夜精品久久久久久| 美女福利国产在线| 免费在线观看影片大全网站| 国产亚洲欧美98| 精品人妻在线不人妻| 久久草成人影院| 久久天堂一区二区三区四区| 日日爽夜夜爽网站| 性色av乱码一区二区三区2| 在线观看免费视频日本深夜| 精品熟女少妇八av免费久了| 无遮挡黄片免费观看|