美女写真久久影院,无码精品久久久天天影视,亚洲国产美女精品久久久久∴ http://www.shnenglu.com/vliuchao/Just Dive Into!zh-cnThu, 08 May 2025 15:52:58 GMTThu, 08 May 2025 15:52:58 GMT60MySQL在linux中的安裝和后續http://www.shnenglu.com/vliuchao/archive/2011/04/24/144899.htmlRichard LiuRichard LiuSun, 24 Apr 2011 06:06:00 GMThttp://www.shnenglu.com/vliuchao/archive/2011/04/24/144899.htmlhttp://www.shnenglu.com/vliuchao/comments/144899.htmlhttp://www.shnenglu.com/vliuchao/archive/2011/04/24/144899.html#Feedback0http://www.shnenglu.com/vliuchao/comments/commentRss/144899.htmlhttp://www.shnenglu.com/vliuchao/services/trackbacks/144899.htmlcentos的安裝盤帶了mysql的安裝,安裝以后,mysql實際上還是需要配置的,前兩天折騰了半天,寫下過程來供以后在搞的時候備忘:
1 安裝centos是自定義安裝軟件包,選擇服務器中的Mysql
2 安裝以后,需要做一些配置,首先在centos的界面選擇 管理 服務(services)開啟MySql的服務,當然也可以 services mysqld start,不過在終端用命令開啟下一次重啟還需要再輸入,還是再界面配置不錯的,網上看了一下似乎也可以拷貝文件到etc的某一個目錄也可以實現開機啟動服務,不過有界面使用,何必折騰那玩意。
3 此時的mysql通過MySQL-Front或mysql administrator連接mysql的時候發生錯誤ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL server
  說明所連接的用戶帳號沒有遠程連接的權限,只能在本機(localhost)登錄。需更改 mysql 數據庫里的 user表里的 host項把localhost改稱%
4具體步驟:登陸到mysql
1)mysql> use mysql;
按照別人提供的方式update的時候,出現錯誤。
mysql> update user set host='%' where user = 'root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
然后查看了下數據庫的host信息如下:
2)mysql> select host from user where user = 'root';
+-----------------------+
| host |
+-----------------------+
| % |
| 127.0.0.1 |
| localhost.localdomain |
+-----------------------+
3 rows in set (0.00 sec)
host已經有了%這個值,所以直接運行命令:
3)mysql>flush privileges;
ps:別忘了每次輸入后面的;
5 再用mysql administrator連接.,用戶名root密碼為空,可以連接上了 建立本機用戶和遠程訪問用戶就可以了。



Richard Liu 2011-04-24 14:06 發表評論
]]>
RTMP協議詳解(三)http://www.shnenglu.com/vliuchao/archive/2009/12/30/104422.htmlRichard LiuRichard LiuTue, 29 Dec 2009 16:15:00 GMThttp://www.shnenglu.com/vliuchao/archive/2009/12/30/104422.htmlhttp://www.shnenglu.com/vliuchao/comments/104422.htmlhttp://www.shnenglu.com/vliuchao/archive/2009/12/30/104422.html#Feedback14http://www.shnenglu.com/vliuchao/comments/commentRss/104422.htmlhttp://www.shnenglu.com/vliuchao/services/trackbacks/104422.html閱讀全文

Richard Liu 2009-12-30 00:15 發表評論
]]>
RTMP協議詳解(二)http://www.shnenglu.com/vliuchao/archive/2009/12/29/104323.htmlRichard LiuRichard LiuMon, 28 Dec 2009 16:45:00 GMThttp://www.shnenglu.com/vliuchao/archive/2009/12/29/104323.htmlhttp://www.shnenglu.com/vliuchao/comments/104323.htmlhttp://www.shnenglu.com/vliuchao/archive/2009/12/29/104323.html#Feedback0http://www.shnenglu.com/vliuchao/comments/commentRss/104323.htmlhttp://www.shnenglu.com/vliuchao/services/trackbacks/104323.html閱讀全文

Richard Liu 2009-12-29 00:45 發表評論
]]>
RTMP協議詳解(一)http://www.shnenglu.com/vliuchao/archive/2009/12/27/104163.htmlRichard LiuRichard LiuSat, 26 Dec 2009 16:53:00 GMThttp://www.shnenglu.com/vliuchao/archive/2009/12/27/104163.htmlhttp://www.shnenglu.com/vliuchao/comments/104163.htmlhttp://www.shnenglu.com/vliuchao/archive/2009/12/27/104163.html#Feedback8http://www.shnenglu.com/vliuchao/comments/commentRss/104163.htmlhttp://www.shnenglu.com/vliuchao/services/trackbacks/104163.html

Real Time Messaging Protocol(實時消息傳送協議協議)Adobe Systems公司為Flash播放器和服務器之間音頻、視頻和數據傳輸開發的私有協議。

具體使用RTMPAS代碼大概如下:

  var videoInstance:Video = your_video_instance;

  var nc:NetConnection = new NetConnection();

  var connected:Boolean = nc.connect("rtmp://localhost/myapp");

  var ns:NetStream = new NetStream(nc);

  videoInstance.attachVideo(ns);

ns.play("flvName");

Adobe也在官方網站已經提供了RTMP協議的官方文檔說明,為什么要寫這個系列文章最大的原因只是對前一段工作的一個總結和回顧,最近兩個月,實現了一個RTMP Serverc++版本,把公司的流媒體服務和flash無縫對接起來。希望我的文字能給后來研究這個協議的同學有一定的幫助。

RTMP協議是一個基于TCP的高層協議族,當然這個玩意據說還有UDP協議版本的,不過現在還沒有出來,好像Adobe下一版本的FMS會提供支持。下文將要描述的是TCP協議版本的協議。

   RTMP協議的概要理解:

RTMP協議是為了和flash之間交換信令以及媒體數據。為了提高使用效率信令和媒體數據都是使用相同的機制。因為是相同的機制Adobe就整出來了一些比較搞人的概念,當然每個協議第一次接觸都是比較難理解的。

        RTMP協議中信令和媒體數據都稱之為Message,在網絡中傳輸這些Message,為了區分它們肯定是要加一個Message  head的,所以RTMP協議也有一個Message head,還有一個問題因為RTMP協議是基于TCP的,由于TCP的包長度是有限制的(一般來說不超過1500個字節),而RTMPMessage長度是有可能很大的,像一個視頻幀的包可能會有幾十甚至幾千K,這個問題就必然有一個分片的問題,在RTMP協議中對應的說法就是chunk,每一個Message + head都是由一個和多個chunk組成的。到這里對RTMP協議的概要理解就算完了。



Richard Liu 2009-12-27 00:53 發表評論
]]>
精確地計時方式,可以用來評判算法的運行時間http://www.shnenglu.com/vliuchao/archive/2009/05/28/86052.htmlRichard LiuRichard LiuThu, 28 May 2009 15:17:00 GMThttp://www.shnenglu.com/vliuchao/archive/2009/05/28/86052.htmlhttp://www.shnenglu.com/vliuchao/comments/86052.htmlhttp://www.shnenglu.com/vliuchao/archive/2009/05/28/86052.html#Feedback0http://www.shnenglu.com/vliuchao/comments/commentRss/86052.htmlhttp://www.shnenglu.com/vliuchao/services/trackbacks/86052.html    在做涉及到算法的時候,想驗證一下算法的實現優劣的時候總是需要一個算法的計算時間的判斷的,可惜Windows和linux等操作系統提供的記時貌似都不是很準,這個可能和現在的操作系統的時間片輪轉有關吧,也可能是我比較老土啦,反正我一直在x86體系的機器上是沒有找到太好的計時方式的,最近偶然和同事聊天的時候知道了一個比較精確地記時方式,感覺不錯哦,使用的是CPU指令級別的判定應該是比較準的哦,Windows系統的代碼如下
1   inline unsigned __int64 GetCycleCount() 
2 
3     __asm _emit 0x0F 
4     __asm _emit 0x31 
5 
簡單的幾句,在VC下面是可以編譯通過的哦,算出來的結果是系統開機以來的CPU時鐘節拍數,理論上說這個結果應該是比較準的哦,至于是不是CPU時鐘節拍那我也不是很清楚啦?感覺好像是這么個名詞哦,以前學的組成原理忘得差不多了哦,不過我可以確定的是算出來的最終結果的計量單位是一個CPU時鐘周期的八分之一。
    同樣的在linux系統下面也有類似的方式,對應的實現方法
  __inline__ unsigned long long int rdtsc()
   {
     __asm__ volatile (".byte 0x0f, 0x31");
   }


Richard Liu 2009-05-28 23:17 發表評論
]]>
多線程編程學習筆記(1)- 進程和線程的異同http://www.shnenglu.com/vliuchao/archive/2009/01/10/71677.htmlRichard LiuRichard LiuSat, 10 Jan 2009 13:17:00 GMThttp://www.shnenglu.com/vliuchao/archive/2009/01/10/71677.htmlhttp://www.shnenglu.com/vliuchao/comments/71677.htmlhttp://www.shnenglu.com/vliuchao/archive/2009/01/10/71677.html#Feedback0http://www.shnenglu.com/vliuchao/comments/commentRss/71677.htmlhttp://www.shnenglu.com/vliuchao/services/trackbacks/71677.html線程和進程都有ID,寄存器組,狀態,優先權,信息塊。
線程和進程都與父進程共享資源。
線程和進程在創建以后都是獨立的實體。
進程和線程的創建者對其擁有控制權。
進程和線程都可以在創建以后修改屬性和創建新的資源。
進程和線程都不可以訪問其他與自己無關的進程和線程的資源。
進程和線程的不同之處:
進程有一個自己的地址空間,線程沒有自己的地址空間。
父進程和子進程通信必須使用進程間的通信機制,而父進程和子線程進行通信就可以直接通信,同一進程的線程可以直接寫入和讀取讀取進程的變量。
子進程不可以對其他子進程進行影響,子線程可以對其他子線程進行影響。
子進程不可以對父進程施加控制,進程的所有子線程都可以對主線程施加控制,并影響整個進程。


Richard Liu 2009-01-10 21:17 發表評論
]]>
MFC中一個小技巧---獲取窗口所有的同類控件http://www.shnenglu.com/vliuchao/archive/2008/12/24/70276.htmlRichard LiuRichard LiuWed, 24 Dec 2008 13:40:00 GMThttp://www.shnenglu.com/vliuchao/archive/2008/12/24/70276.htmlhttp://www.shnenglu.com/vliuchao/comments/70276.htmlhttp://www.shnenglu.com/vliuchao/archive/2008/12/24/70276.html#Feedback0http://www.shnenglu.com/vliuchao/comments/commentRss/70276.htmlhttp://www.shnenglu.com/vliuchao/services/trackbacks/70276.html   最近寫一個小的工具,用到MFC做界面,窗口中有很多Edit控件,來處理用戶的輸入值,在初始狀態是不可見的,按下Button應該有一個響應顯示所有Edit控件,剛開始的時候想直接調用 ShowWindow了事,可是實在是控件太多了哦,一個一個寫確實很麻煩哦,不知道有什么好方法,問了一下非哥,想不到真的有一種好的方法可以解決這樣的需求,非哥不愧為MFC活化石
CWnd *pWnd = this->GetWindow( GW_CHILD );
while( pWnd )
{
  
if( pWnd->IsKindOf( RUNTIME_CLASS(CEdit) ) )
      pWnd
->ShowWindow(SW_SHOW);
       pWnd 
= pWnd->GetWindow( GW_HWNDNEXT );
}
上面的代碼實現了顯示窗口中所有的CEdit控件,先是獲取當前窗口的子窗口,在判斷是否是CEdit類的實例,
ShowWindow,在得到子窗口的兄弟節點,哎!MFC有時還是比較有意思的哦!

Richard Liu 2008-12-24 21:40 發表評論
]]>
開發航片處理工具的一點感受http://www.shnenglu.com/vliuchao/archive/2008/12/22/70111.htmlRichard LiuRichard LiuMon, 22 Dec 2008 15:13:00 GMThttp://www.shnenglu.com/vliuchao/archive/2008/12/22/70111.htmlhttp://www.shnenglu.com/vliuchao/comments/70111.htmlhttp://www.shnenglu.com/vliuchao/archive/2008/12/22/70111.html#Feedback0http://www.shnenglu.com/vliuchao/comments/commentRss/70111.htmlhttp://www.shnenglu.com/vliuchao/services/trackbacks/70111.html在這個過程中收獲還是不少的哦,痛并快樂著,不能不佩服老大的架構的思想,在英明神武的老大的指導下開發出一個基本上比較符合面向對象的軟件,其中的編程思想的沖擊是巨大的哦,顛覆了我以前做程序的很多固有觀點。
首先來說說該工具的需求,對已有的大尺寸的航片進行切割,切割出給定寬高的航片,在提層合并航片。具體來說就是如果有一張1024 * 1024的航片切割成8 * 8張 128*128大小的航片為第零層,提層比率為2,則第1層就是原航片的256*256大小的,但是要保存為128 *128的航片 這樣的航片有4 *4張,依次類推,第2層 第 3層...,還有這些航片的編號以LLXXXYYY編號,坐標原點為航片左下角,ll為層數,XXX為X軸上航片編號,YYY為Y軸上的航片的編號。
剛開始聽到這個需求的時候確實是沒有什么頭緒,研究了一下libtiff就開始搞了哦,剛開始的時候很快就把航片的讀寫搞定了,以為會很快就解決問題啦,悶著頭在那里狂寫代碼,第一版交給老大,被鄙視的不行哦,首先因為需求沒有理解清楚,自己理解的圖像編號和老大所說的圖像編號的順序不同哦,回過來改代碼發現居然無從下手,還有就是老大要生成航片處理的結果,也無法在代碼中體現。說實話當時心里還是比較嘀咕的,覺得老大交代問題沒有交代清楚,后來老大說的一句話還是比較有道理的,客戶的需求是不斷變化的,你要是想讓用戶來適應你的設計是不可能的,你的設計應該是自適應的,能夠應對客戶不斷變化的需求。聽完這句話,只有無語接著在那里寫代碼,等我寫的七七八八了,老大有空看了一下我的代碼,繼續鄙視我哦,為何?模塊劃分不清,UI層中有太多航片處理的邏輯,航片處理模塊中也有太多的航片編號的邏輯。一句話 整個代碼只是為做實現這個功能,毫無擴展性,如果以后在在上面添加功能基本上是沒有可能。
哎!老大當時這樣說了,讓我修改代碼,當時真是想死的心都有了哦,修改也不知道怎么下手,和老大探討了半天,終于是定下了架構,呵呵當然啦,主要還是老大定的架構。這次交流收獲還是不少的哦。
做軟件首先應該定下的是輸入和輸出,確定數據的流向。從UI層定義輸入,確定盡可能少的輸入參數,從輸出確定數據,輸入參數到輸出之間確定數據的流向,對數據的流向進行功能上的劃分,確定不同的模塊,模塊之間盡可能少的耦合性,如果一個數據和操作是相互關聯的則可以視為一個對象,對象的設計應該考慮到擴展性,盡可能的從一個基類派生,為以后擴展提供基礎,使用工廠模式來確定不同的對象。還有就是UI與底層數據處理模塊應該沒有關聯,通過一個處理模塊來出來UI和底層模塊之間的交換。
  哎,這樣做下來,我的工具有5個模塊,一個處理編號生成的模塊A,一個參數保存的模塊B,一個處理航片讀寫的模塊C,一個生成切割航片的模塊D,一個與UI交互和與底層交互的模塊E,它們之間的依賴關系為 E依賴于A D, A依賴于B, D依賴于C,這樣模塊間依賴清楚,接口也定義的明確。
收獲哦!有一種豁然開朗的感覺,以后有機會獨立開發的時候應該多想想這樣的問題,爭取早日有所成就哦!


Richard Liu 2008-12-22 23:13 發表評論
]]>
VS2005開發DLL工程http://www.shnenglu.com/vliuchao/archive/2008/12/21/69962.htmlRichard LiuRichard LiuSat, 20 Dec 2008 16:40:00 GMThttp://www.shnenglu.com/vliuchao/archive/2008/12/21/69962.htmlhttp://www.shnenglu.com/vliuchao/comments/69962.htmlhttp://www.shnenglu.com/vliuchao/archive/2008/12/21/69962.html#Feedback3http://www.shnenglu.com/vliuchao/comments/commentRss/69962.htmlhttp://www.shnenglu.com/vliuchao/services/trackbacks/69962.html       首先要有一個解決方案,我想這個怎么搞就不用我在這里廢話了哦,生成一個項目作為界面,同時這個項目也是主項目。在該解決方案下面添加實現不同功能的各種項目,這些項目在向導中選擇的時候選擇為win32 項目,在為win32項目的應用程序設置中選擇DLL就可以建立一個DLL工程了,在DLL工程中添加自己寫的頭文件和CPP文件,這樣就建立了一個DLL不過現在還沒有導出DLL。
     要生成一個DLL還必須添加導出函數的宏, __declspec(dllexport)和__declspec(dllimport) 這里有一個小的技巧,就是利用工程的預編譯宏來設置如果有一個工程名為Test,在要導出的類前面加上如下的代碼
1#ifdef TEST_EXPORTS
2#define TEST_API  __declspec(dllexport)
3#else
4#define TEST_API __declspec(dllimport)
5#endif
如果要導出的類名為class exportA;則可以在頭文件中類的聲明可以這樣寫class TEST_API exportA結可以把整個類導出了,在主工程中引用導出類exportA 只要包含該頭文件就可以了,為什么會這樣這是因為使用了上面的預編譯頭的緣故哦,在DLL工程中存在TEST_EXPORTS宏,所以在DLL工程中是類導出,在其他引用該工程的工程中包含搞頭文件因為不存在TEST_EXPORTS宏,所以是類導入,呵呵 比較巧妙吧,其實看看網上的很多開源的庫生成DLL的好像很多也使用了該方法,不過可能可能開源庫很少是用VS開發的,所以不知道他們具體是怎么搞的。但是確實看到很多的開源庫的配置文件性質的投文件中使用了這個技巧的。
     上面說的還有一個問題就是在其他工程中包含DLL工程還存在問題,無法引用導出的類,應該還有一個工作要做那就是應該包含DLL工程生成的lib 和dll文件加上導出類的頭文件就可以直接使用DLL工程中的類了哦,不過如果是自己開發還是最好把DLL工程和要引用DLL的工程作為一個解決方案的啦,這樣方便調試的,這里有幾個問題要注意:
      1 項目依賴一定要設置好,至于怎么設置 那我就不說了哦,呵呵 在項目右鍵總是會的哦
      2 項目引用要設置哦,比如說工程A使用了exportA類,那就一定要設置引用,引用工程Test,怎么設置,在A的通用屬性中的引用中設置啦。
    ok這樣就可以開發出使用DLL的工程了哦,Release的時候含有一大堆的DLL給用戶搞得很專業的樣子哦,呵呵!PS:可能有人說導出類會暴露很多細節給用戶啦,呵呵這個其實也好解決的哦,看看OCI的封裝就會知道哦,使用私有類就可以隱藏所有的私有方法和屬性的哦,具體怎么搞?呵呵去看看exception C++上關于IMPL的啦 上面有很好的說明撒。

Richard Liu 2008-12-21 00:40 發表評論
]]>
C++中的流(1)http://www.shnenglu.com/vliuchao/archive/2008/12/12/69301.htmlRichard LiuRichard LiuFri, 12 Dec 2008 14:43:00 GMThttp://www.shnenglu.com/vliuchao/archive/2008/12/12/69301.htmlhttp://www.shnenglu.com/vliuchao/comments/69301.htmlhttp://www.shnenglu.com/vliuchao/archive/2008/12/12/69301.html#Feedback0http://www.shnenglu.com/vliuchao/comments/commentRss/69301.htmlhttp://www.shnenglu.com/vliuchao/services/trackbacks/69301.html流在C++中的地位是很重要的,流的概念隨C++程序設計語言問世以來就存在,ANSI C++C++流大概占三分之一的比重,從中可以看出流的重要。

在學校的時候接觸C++,其實學習的第一個hello world程序就使用了流

 
1#include <iostream>
2
3using namespace std;
4
5int main(int argc, char *argv[])
6{
7 cout<<"hello world"<<endl;
8}
 其中的cout就是標準IO流,往標準終端輸出,輸出類型為const char數組,但是也可以輸出數值,不論是int型還是浮點數都可以輸出,輸出到標準終端的都是字符型數組。
        對應cout的有cin為從標準輸入設備得到輸入,簡單的示例如下
 
 1#include <iostream>
 2
 3using namespace std;
 4
 5int main(int argc, char *argv[])
 6{
 7 int X;
 8 int Y;
 9 cin>>X>>Y;
10 cout << X+Y<<endl;
11}

上個示例中中從標準輸入設備,如鍵盤輸入數值可以賦值給int變量 X ,Y值,間隔輸入用回車來隔開。
      簡單的說了一下C++的流,那具體來說說什么是流,流可以從輸入輸出方面來理解,就是用來傳遞數據的的一個無結構的字節序列、字符序列、或者任意同等大小的單位的數據序列,就像一個流動的管道來承載數據,估計這就是為什么叫做流的緣故吧,俺猜的哦!

    標準C++支持流IO,也就是流形式的IO,對于流形式的IO實際形式的接口隱藏在IO流的接口中,對流IO的用戶來說與IO交互的就是字符流,呵呵記住哦,就是字符流,不是字節流也不是位流哦,這里字符流有兩種形式,一種char型的,一種的wchar_t型的。上面說到的cin和cout方法就是用來和流IO進行交互的,當然還有cerr和clog這個以后專門來講講哦。
       在實際的編程中還會用到另外一種形式的流——串,這個也是流的一種,具體怎么來定義串,俺也不知道哦,等什么時候找到經典定義了在來說說哦。這里就講講幾個用串的經典用法,編程的時候經常用到的幾個方法。

 1#include <sstream>
 2template <class T>
 3std::string  ToString(const T& _value)
 4{             
 5std::ostringstream o;    
 6<< _value; 
 7return(o.str());
 8}

 9
10template <class T>
11T FromString(const std::string& _value)
12{            
13std::istringstream i(_value); 
14T t;
15>> t; 
16return(t);
17}

上面兩個函數可以實現在C++中的字符串轉數值和數值轉字符串,至于為什么能實現轉換,這就是因為流的實現形式一般都是分為四個步驟的:
1  格式化解析
2 緩沖
3 編碼轉換
4 傳遞
上面的兩個函數沒有涉及到編碼轉換的問題,這個由local類來實現的,會在后續的文章來接著分析啦,在這里在丟一個常用的數值轉字符串的常用方法來結束本文哦,
 1///對齊數 _value是要轉換的數值,_alignLen是對齊
 2///的長度,這個方法的應用還是比較多的哦,像輸入10 1 
 3///100這類數值前面要用0補齊即010,001,100這樣的形
 4///式,用串來實現就不用用if判斷了>100,>10,>1的情況
 5///這還只是三位數的情況,要是十位數或者更多,我估計用
 6///if來判斷那還不是瘋了哦,還是用我這個函數好哦,只要
 7///一個參數什么都搞定

 8#include<sstream>
 9template<typename T>
10string GetAlignment(T _value, int _alignLen)
11{
12ostringstream returnNum;
13returnNum.width(_alignLen);
14returnNum.fill('0');
15returnNum<<_value;
16returnNum.width(0);
17return (returnNum.str());
18}

 今天就說到這里哦,下次對流進行詳細的剖析哦!

Richard Liu 2008-12-12 22:43 發表評論
]]>
国产成人精品久久亚洲高清不卡 | 色老头网站久久网| 99久久超碰中文字幕伊人| 久久精品中文字幕无码绿巨人| 久久99国产精一区二区三区| 韩国三级中文字幕hd久久精品 | 久久综合九色综合网站| 99re久久精品国产首页2020| 精品多毛少妇人妻AV免费久久| 国产69精品久久久久9999APGF| 精品综合久久久久久97超人 | 久久婷婷五月综合97色一本一本| 国产叼嘿久久精品久久| 亚洲va久久久噜噜噜久久男同| 99热成人精品免费久久| 狠狠88综合久久久久综合网| 亚洲欧美另类日本久久国产真实乱对白 | 偷偷做久久久久网站| www久久久天天com| 东方aⅴ免费观看久久av| 狠狠精品干练久久久无码中文字幕| 亚洲国产美女精品久久久久∴| 91精品国产色综久久| 91精品国产91久久综合| 波多野结衣久久一区二区| 韩国三级中文字幕hd久久精品| 久久这里只有精品18| 久久久久久久女国产乱让韩| 久久er国产精品免费观看8| 久久精品国产亚洲网站| 国产成年无码久久久免费| 欧美亚洲国产精品久久久久| 国产成人精品久久亚洲| 久久噜噜电影你懂的| www.久久热.com| 热99re久久国超精品首页| 色综合色天天久久婷婷基地| 国产精品视频久久久| 久久免费线看线看| 国产精品成人99久久久久 | 久久99精品综合国产首页|