精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

學習C#實現HTTP協議:多線程文件傳輸

開發 后端
HTTP亦即Hpyer Text Transfer Protocal的縮寫,它是現代互聯網上最重要的一種網絡協議,本文就介紹了如何用C#實現HTTP協議下的多線程文件傳輸,供大家參考。

很多人都有過使用網絡螞蟻或網絡快車互聯網文件的經歷,這些軟件的使用可以大大加速互聯網上文件的傳輸速度,減少文件傳輸的時間。這些軟件為什么有如此大的魔力呢?其主要原因是這些軟件都采用了多線程下載和斷點續傳技術。如果我們自己來編寫一個類似這樣的程序,也能夠快速的在互聯網上下載文件,那一定是非常愉快的事情。下面我就講一講如何利用C#語言編寫一個支持多線程下載文件的程序,你會看到利用C#語言編寫網絡應用程序是多么的容易,從中也能體會到C#語言中強大的網絡功能。

首先介紹一下HTTP協議, HTTP亦即Hpyer Text Transfer Protocal的縮寫,它是現代互聯網上最重要的一種網絡協議,超文本傳輸協議位于TCP/IP協議的應用層,是一個面向無連接、簡單、快速的C/S結構的協議。HTTP的工作過程大體上分連接、請求、響應和斷開連接四個步驟。C#語言對HTTP協議提供了良好的支持,在類庫中提供了WebRequest和WebResponse類,這兩個類都包含在System.Net命名空間中,利用這兩個類可以實現很多高級的網絡功能,本文中多線程文件下載就是利用這兩個類實現的。 WebRequest和WebResponse都是抽象基類,因此在程序中不能直接作為對象使用,必須被繼承,實際使用中,可根據URI參數中的URI前綴選用它們合適的子類,對于HTTP這類URI,HttpWebRequest和HttpWebResponse類可以用于處理客戶程序同WEB服務器之間的HTTP通訊。

HttpWebRequest類實現了很多通過HTTP訪問WEB服務器上文件的高級功能。HttpWebRequest類對WebRequest中定義的屬性和方法提供支持,HttpWebRequest將發送到Internet資源的公共 HTTP標頭的值公開為屬性,由方法或系統設置,常用的由屬性或方法設置的HTTP標頭為:接受, 由Accept屬性設置, 連接, 由Connection屬性和KeepAlive屬性設置, Content-Length, 由ContentLength屬性設置, Content-Type, 由ContentType屬性設置, 范圍, 由AddRange方法設置. 實際使用中是將標頭信息正確設置后,傳遞到WEB服務器,WEB服務器根據要求作出回應。

HttpWebResponse類繼承自WebResponse類,專門處理從WEB服務器返回的HTTP響應,這個類實現了很多方法,具有很多屬性,可以全面處理接收到的互聯網信息。在HttpWebResponse類中,對于大多數通用的HTTP標頭字段,都有獨立的屬性與其對應,程序員可以通過這些屬性方便的訪問位于HTTP接收報文標頭字段中的信息,本例中用到的HttpWebResponse類屬性為:ContentLength 既接收內容的長度。

有了以上的了解后,下面看看這兩個類的用法,要創建HttpWebRequest對象,不要直接使用HttpWebRequest的構造函數,而要使用WebRequest.Create方法初始化一個HttpWebRequest實例,如:

  1. HttpWebRequest hwr=(HttpWebRequest)WebRequest.Create(http://www.163.com/);  

創建了這個對象后,就可以通過HttpWebRequest屬性,設置很多HTTP標頭字段的內容,如hwr.AddRange(100,1000);設置接收對象的范圍為100-1000字節。

HttpWebReques對象使用GetResponse()方法時,會返回一個HttpWebResponse對象,為提出HTTP返回報文信息,需要使用HttpWebResponse的GetResponseStream()方法,該方法返回一個Stream對象,可以讀取HTTP返回的報文,如:首先定義一個Strean 對象 public System.IO.Stream ns; 然后 ns=hwr.GetResponse ().GetResponseStream ();即可創建Stream對象。有了以上的準備知識后下面開始設計我們的多線程互聯網文件的下載程序,首先打開.Net集成開發環境,選擇“文件”、“新建”、“項目”,然后選擇“Visual C#項目”,在向導右邊列表框中選中“Windows應用程序”,輸入項目名稱,如本例為:httpftp,然后選擇“確定”按鈕,向導自動生成了一個 Windows應用程序項目。首先打開窗口設計器設計應用程序窗口,增加如下控件:

一個列表框 listBox1 三個文本標簽 label1-label3 三個文本框 textBox1-textBox3 一個開始接收按鈕 button1 設計好的窗口如下圖:

設計好的窗口 

控件定義代碼是:

  1. public System.Windows.Forms.ListBox listBox1;  
  2. private System.Windows.Forms.Label label1;  
  3. private System.Windows.Forms.TextBox textBox1  
  4. private System.Windows.Forms.Button button1;  
  5. private System.Windows.Forms.Label label2;  
  6. private System.Windows.Forms.TextBox textBox2;  
  7. private System.Windows.Forms.Label label3;  
  8. private System.Windows.Forms.TextBox textBox3;  
  9. private System.Windows.Forms.Label label4;  
  10. private System.Windows.Forms.TextBox textBox4;  

打開Form1的代碼編輯器,增加如下的命名空間:

  1. using System.Net;//網絡功能   
  2. using System.IO;//流支持  
  3. using System.Threading ;//線程支持  

增加如下的程序變量:

  1. public bool[] threadw; //每個線程結束標志  
  2. public string[] filenamew;//每個線程接收文件的文件名  
  3. public int[] filestartw;//每個線程接收文件的起始位置  
  4. public int[] filesizew;//每個線程接收文件的大小  
  5. public string strurl;//接受文件的URL  
  6. public bool hb;//文件合并標志  
  7. public int thread;//進程數  

定義一個HttpFile類,用于管理接收線程,其代碼如下:

  1. public class HttpFile  
  2. {  
  3.  public Form1 formm;  
  4.  public int threadh;//線程代號  
  5.  public string filename;//文件名  
  6.  public string strUrl;//接收文件的URL  
  7.  public FileStream fs;  
  8.  public HttpWebRequest request;  
  9.  public System.IO.Stream ns;  
  10.  public byte[] nbytes;//接收緩沖區  
  11.  public int nreadsize;//接收字節數  
  12.  public HttpFile(Form1 form,int thread)//構造方法  
  13.  {  
  14.   formm=form;  
  15.   threadh=thread;  
  16.  }  
  17.  ~HttpFile()//析構方法  
  18.  {  
  19.   formm.Dispose ();  
  20.  }  
  21.  public void receive()//接收線程  
  22.  {  
  23.   filename=formm.filenamew[threadh];  
  24.   strUrl=formm.strurl;  
  25.   ns=null;  
  26.   nbytes= new byte[512];  
  27.   nreadsize=0;  
  28.   formm.listBox1 .Items .Add ("線程"+threadh.ToString ()+"開始接收");  
  29.   fs=new FileStream (filename,System.IO.FileMode.Create);  
  30.   try 
  31.   {  
  32.    request=(HttpWebRequest)HttpWebRequest.Create (strUrl);  
  33.    //接收的起始位置及接收的長度   
  34.    request.AddRange(formm.filestartw [threadh],  
  35.    formm.filestartw [threadh]+formm.filesizew [threadh]);  
  36.    ns=request.GetResponse ().GetResponseStream ();//獲得接收流  
  37.    nreadsize=ns.Read (nbytes,0,512);  
  38.    while (nreadsize>0)  
  39.    {  
  40.     fs.Write (nbytes,0,nreadsize);  
  41.     nreadsize=ns.Read (nbytes,0,512);  
  42.     formm.listBox1 .Items .Add ("線程"+threadh.ToString ()+"正在接收");  
  43.    }  
  44.    fs.Close();  
  45.    ns.Close ();  
  46.   }  
  47.   catch (Exception er)  
  48.   {  
  49.    MessageBox.Show (er.Message );  
  50.    fs.Close();  
  51.   }  
  52.   formm.listBox1 .Items.Add ("進程"+threadh.ToString ()+"接收完畢!");  
  53.   formm.threadw[threadh]=true;  
  54.  }  
  55. }  

該類和Form1類處于統一命名空間,但不包含在Form1類中。下面定義“開始接收”按鈕控件的事件響應函數:

  1. private void button1_Click(object sender, System.EventArgs e)  
  2. {  
  3.  DateTime dt=DateTime.Now;//開始接收時間  
  4.  textBox1.Text =dt.ToString ();  
  5.  strurl=textBox2.Text .Trim ().ToString ();  
  6.  HttpWebRequest request;  
  7.  long filesize=0;  
  8.  try 
  9.  {  
  10.   request=(HttpWebRequest)HttpWebRequest.Create (strurl);  
  11.   filesize=request.GetResponse ().ContentLength;//取得目標文件的長度  
  12.   request.Abort ();  
  13.  }  
  14.  catch (Exception er)  
  15.  {  
  16.   MessageBox.Show (er.Message );  
  17.  }  
  18.  // 接收線程數  
  19.  thread=Convert.ToInt32 (textBox4.Text .Trim().ToString (),10);  
  20.  //根據線程數初始化數組  
  21.  threadw=new bool [thread];  
  22.  filenamew=new string [thread];  
  23.  filestartw=new int [thread];  
  24.  filesizew=new int[thread];  
  25.  
  26.  //計算每個線程應該接收文件的大小  
  27.  int filethread=(int)filesize/thread;//平均分配  
  28.  int filethreade=filethread+(int)filesize%thread;//剩余部分由最后一個線程完成  
  29.  //為數組賦值  
  30.  for (int i=0;i< thread;i++)  
  31.  {  
  32.   threadw[i]=false;//每個線程狀態的初始值為假  
  33.   filenamew[i]=i.ToString ()+".dat";//每個線程接收文件的臨時文件名  
  34.   if (i< thread-1)  
  35.   {  
  36.    filestartw[i]=filethread*i;//每個線程接收文件的起始點  
  37.    filesizew[i]=filethread-1;//每個線程接收文件的長度  
  38.   }  
  39.   else 
  40.   {  
  41.    filestartw[i]=filethread*i;  
  42.    filesizew[i]=filethreade-1;  
  43.   }  
  44.  }  
  45.  //定義線程數組,啟動接收線程  
  46.  Thread[] threadk=new Thread [thread];  
  47.  HttpFile[] httpfile=new HttpFile [thread];  
  48.  for (int j=0;j< thread;j++)  
  49.  {  
  50.   httpfile[j]=new HttpFile(this,j);  
  51.   threadk[j]=new Thread(new ThreadStart (httpfile[j].receive ));  
  52.   threadk[j].Start ();  
  53.  }  
  54.  //啟動合并各線程接收的文件線程  
  55.  Thread hbth=new Thread (new ThreadStart (hbfile));  
  56.  hbth.Start ();  
  57. }  

合并文件的線程hbfile定義在Form1類中,定義如下:

  1. public void hbfile()  
  2. {  
  3.  while (true)//等待  
  4.  {  
  5.   hb=true;  
  6.   for (int i=0;i< thread;i++)  
  7.   {  
  8.    if (threadw[i]==false)//有未結束線程,等待  
  9.    {  
  10.     hb=false;  
  11.     Thread.Sleep (100);  
  12.     break;  
  13.    }  
  14.   }  
  15.   if (hb==true)//所有線程均已結束,停止等待,  
  16.   {  
  17.    break;  
  18.   }  
  19.  }  
  20.  FileStream fs;//開始合并  
  21.  FileStream fstemp;  
  22.  int readfile;  
  23.  byte[] bytes=new byte[512];  
  24.  fs=new FileStream (textBox3.Text .Trim ().ToString (),System.IO.FileMode.Create);  
  25.  for (int k=0;k< thread;k++)  
  26.  {  
  27.   fstemp=new FileStream (filenamew[k],System.IO.FileMode .Open);  
  28.   while (true)  
  29.   {  
  30.    readfile=fstemp.Read (bytes,0,512);  
  31.    if (readfile>0)  
  32.    {  
  33.     fs.Write (bytes,0,readfile);  
  34.    }  
  35.    else 
  36.    {  
  37.     break;  
  38.    }  
  39.   }  
  40.   fstemp.Close ();  
  41.  }  
  42.  fs.Close ();  
  43.  DateTime dt=DateTime.Now;  
  44.  textBox1.Text =dt.ToString ();//結束時間  
  45.  MessageBox.Show ("接收完畢!!!");  
  46. }  

至此,一個多線程下載文件的程序就大功告成了,注意在輸入本地文件名時,應按如下格式輸入:“c:\\test\\httpftp\\bin \\d.htm”,因”\”后的字符在C#中是轉義字符,線程數并非越大越好,一般5個線程就可以了,該程序在Visual Studio.Net 2002開發環境及Windows xp 上通過。

【編輯推薦】

  1. C#發送Email郵件的方法解析
  2. 解析C#中is和as操作符的用法
  3. C# Excel COM組件的使用
  4. 如何判斷C#字符串是全角還是半角
  5. C#語言規范之小結
責任編輯:book05 來源: VCKBASE
相關推薦

2011-05-19 11:20:08

2009-09-07 13:38:03

C# HTTP文件傳輸HTTP文件傳輸

2010-06-28 14:25:16

2010-07-01 15:55:54

FTP文件傳輸協議

2009-08-28 16:43:57

C#多線程學習

2011-08-24 10:18:56

2009-08-26 18:13:55

C#多線程lock

2010-06-28 11:15:45

BitTorrent協

2010-06-09 15:40:01

FTP文件傳輸協議

2009-08-12 18:04:44

編寫C#多線程

2012-02-16 08:19:03

2012-04-05 13:24:30

2023-11-19 11:44:45

2009-09-04 15:09:48

C#多線程啟動Squa

2010-06-28 15:41:04

FTP文件傳輸協議

2010-06-09 15:55:20

FTP文件傳輸協議

2020-11-13 08:30:57

Socket

2024-12-30 06:00:00

C#線程編程

2024-05-10 07:44:23

C#進程程序

2013-08-21 13:34:52

MJPEG流傳輸C#開源C#
點贊
收藏

51CTO技術棧公眾號

黄色片网站在线| 国产无遮挡又黄又爽又色| 国产69精品久久久久按摩| 国产精品三级久久久久三级| 91精品免费视频| 久草国产在线视频| 久久91精品| 欧美精品 国产精品| 国产毛片久久久久久国产毛片| 偷拍精品一区二区三区| 老司机精品久久| 欧美国产日韩一区二区| 国产精品成人无码免费| 日韩精品亚洲专区在线观看| 天天综合网天天综合色| 综合久久国产| 久热av在线| 国产成人av一区二区三区在线 | 国产一区二区三区四区五区在线| www.国产com| 欧美国内亚洲| 中文字幕亚洲欧美一区二区三区| 一区二区三区四区毛片| 一个人www视频在线免费观看| 亚洲人成亚洲人成在线观看图片| 欧美一区国产一区| 理论片中文字幕| 精品一区二区三区久久久| 欧美在线观看网址综合| 久久精品人妻一区二区三区| 欧美丰满老妇| 在线亚洲欧美视频| 少妇大叫太粗太大爽一区二区| 久久久精品区| 3751色影院一区二区三区| 国产女女做受ⅹxx高潮| 免费污视频在线| 亚洲三级在线免费观看| 亚洲成人a**址| 天堂v在线观看| 丰满少妇久久久久久久| 亚洲伊人第一页| 在线观看黄色网| 日韩二区三区四区| 日韩av片电影专区| 久久久国产高清| 亚洲大胆在线| 久久久久久噜噜噜久久久精品| 欧美黑人猛猛猛| 中文av一区| 久久高清视频免费| 精品无码久久久久成人漫画 | 欧美一区二区三区综合| 国产淫片在线观看| 国产精品久久久久久久岛一牛影视 | 久久免费精品视频| 好吊色视频在线观看| 亚洲精品国产首次亮相| 久热99视频在线观看| 午夜精品一区二区三级视频| 99久久婷婷这里只有精品| 最近2019好看的中文字幕免费 | 天堂av中文字幕| 不卡的av电影在线观看| 精品日本一区二区三区| 亚洲人成色777777精品音频| 成人网在线播放| 精品国产区在线| 精品乱码一区二区三四区视频| 国产欧美在线观看一区| 亚洲伊人婷婷| 18视频在线观看| 亚洲丶国产丶欧美一区二区三区| 国产精品50p| 久久野战av| 欧美日韩精品专区| 伊人久久久久久久久| av成人综合| 亚洲欧美日韩在线一区| 婷婷丁香综合网| 在线国产一区| 4p变态网欧美系列| 在线观看日批视频| 国产成a人无v码亚洲福利| 精品国产一区二区三区四区精华| 美国一级片在线免费观看视频| 国产女人18水真多18精品一级做| 中国人体摄影一区二区三区| 黄色成人在线网| 色妞www精品视频| 免费黄频在线观看| 美国成人xxx| 一本色道久久综合狠狠躁篇怎么玩| 国产馆在线观看| 国产精品v亚洲精品v日韩精品| 欧美一区二区三区免费观看 | 精品在线观看视频| 粉嫩精品一区二区三区在线观看 | 国产精品久久久久四虎| 91精品国产91久久久久| 黄色污污网站在线观看| 国产剧情av麻豆香蕉精品| 精品国产第一页| 在线观看免费网站黄| 亚洲综合视频在线观看| 国产熟人av一二三区| 日韩精品成人| 色黄久久久久久| 国产精品成人久久| 美女看a上一区| 国产日韩欧美精品| 国产乱色在线观看| 色婷婷久久99综合精品jk白丝| 欧美激情国内自拍| 女人丝袜激情亚洲| 欧美黑人视频一区| 中文字幕人妻精品一区| 91一区一区三区| 成人短视频在线观看免费| 欧美与亚洲与日本直播| 亚洲第一精品自拍| 欧美被狂躁喷白浆精品| 青草国产精品久久久久久| 国内精品视频在线播放| 污视频免费在线观看| 欧美日韩电影在线| 日本二区在线观看| 一二三区精品| 国产精品成人一区二区三区 | 国产日韩欧美高清在线| 美女黄色免费看| 国产在线不卡一区二区三区| 中文字幕少妇一区二区三区| www五月天com| 91色乱码一区二区三区| 777久久精品一区二区三区无码 | 欧美日韩国产经典色站一区二区三区| 无遮挡aaaaa大片免费看| 欧美性色综合| 91视频免费进入| 日本www在线| 欧美日韩亚洲高清一区二区| 亚洲欧洲久久久| 欧美一级专区| 日本一区免费观看| 成人免费短视频| 亚洲精品一区在线观看香蕉| 国产精品自拍99| www.激情成人| 凹凸国产熟女精品视频| 免费萌白酱国产一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 一级全黄裸体免费视频| 国产欧美视频在线观看| 一区二区三区国产免费| 成人综合专区| 91久久久久久| 91中文在线| 精品奇米国产一区二区三区| 久久99久久98精品免观看软件 | 97欧洲一区二区精品免费| a视频在线观看| 日韩精品一区二区三区老鸭窝| 91杏吧porn蝌蚪| 国产·精品毛片| 无罩大乳的熟妇正在播放| 蜜桃一区av| 日韩69视频在线观看| 国产鲁鲁视频在线观看免费| 欧美丝袜丝交足nylons图片| 日本视频在线免费| 国产一区二区在线观看免费| 国产欧美久久久久| 久久97精品| 国产精品激情av电影在线观看| 都市激情一区| 日韩小视频在线观看专区| 欧美日韩综合一区二区| 99国产精品久| 性欧美极品xxxx欧美一区二区| 99久久婷婷| 国产区二精品视| 国产成人精品一区二区三区在线| 欧美超级免费视 在线| 黄片毛片在线看| 欧洲一区在线电影| 免费毛片在线播放免费| 99精品偷自拍| 97人人爽人人| 亚洲少妇诱惑| 免费久久久久久| 96sao在线精品免费视频| 欧美专区在线播放| 久草资源在线观看| 亚洲精品视频免费| 97免费观看视频| 日韩欧美成人精品| www.av成人| 久久久一区二区三区捆绑**| 日韩av片免费观看| 免费中文字幕日韩欧美| 成人在线观看www| 国产精品探花在线观看| 99视频免费观看蜜桃视频| 天然素人一区二区视频| 欧美激情日韩图片| 精品国产白色丝袜高跟鞋| 日韩禁在线播放| 中文字幕在线天堂| 亚洲午夜免费福利视频| 992在线观看| 久久久久久97三级| 在线视频 日韩| 国产精品1区2区3区在线观看| av五月天在线| 亚洲免费综合| 国产精品videossex国产高清| 日本大胆欧美| 欧美中日韩一区二区三区| 国产福利一区二区精品秒拍| 成人精品在线观看| 欧美日韩女优| 日本中文字幕成人| 无遮挡爽大片在线观看视频| 欧美精品激情在线观看| 黄网站免费在线观看| 在线视频精品一| 久久精品a一级国产免视看成人 | 99国产精品| 喜爱夜蒲2在线| 91精品综合久久久久久久久久久 | 亚洲一区久久久| 9.1麻豆精品| 成人激情视频免费在线| 岛国精品在线| 国产日韩专区在线| 丁香婷婷久久| 成人免费视频a| 伊人久久精品| 国产在线精品一区免费香蕉| 播放一区二区| 国产精自产拍久久久久久| 国模套图日韩精品一区二区| 欧美尤物巨大精品爽| 97天天综合网| 5278欧美一区二区三区| 两个人看的在线视频www| 午夜精品免费视频| 美女搞黄视频在线观看| 日本高清不卡在线| 欧美日韩国产v| 国产精品白嫩初高中害羞小美女 | 麻豆精品91| 成人黄色一区二区| 蜜桃精品在线观看| 亚洲一区二区在线视频观看| 美国十次了思思久久精品导航| 午夜久久久精品| 国产一区二区影院| 四虎成人免费视频| 99re热视频这里只精品 | 亚洲婷婷综合久久一本伊一区| 蜜桃视频最新网址| 亚洲另类在线制服丝袜| 国产一级视频在线播放| 欧美日韩在线另类| 波多野结衣视频在线看| 欧美精品99久久久**| 亚洲av色香蕉一区二区三区| 亚洲国产免费av| 久久av少妇| 久热精品视频在线观看| 久草在线视频福利| 茄子视频成人在线| 亚洲伦理一区二区| 国产v亚洲v天堂无码| 免费精品国产| 国产又爽又黄ai换脸| 影音先锋日韩资源| wwwwww.色| 国产成人精品免费看| 日韩在线免费观看av| 日韩一区在线免费观看| 日本少妇激情舌吻| 在线一区二区三区四区五区| h狠狠躁死你h高h| 精品夜色国产国偷在线| 麻豆传媒视频在线| 欧美一区二三区| 久久久91麻豆精品国产一区| 欧美成人dvd在线视频| 亚洲视频电影在线| 国产精品亚洲a| 国产成人免费高清| 先锋影音av在线| 亚洲国产毛片aaaaa无费看| 中文字幕在线播出| 精品国产乱码久久久久久老虎| 国产中文字幕在线视频| 欧美国产中文字幕| 欧美在线se| 蜜桃传媒视频麻豆第一区免费观看| 97精品国产一区二区三区 | 国产第一页在线播放| 欧美午夜影院一区| 色呦呦视频在线| 久久中文精品视频| 国产国产一区| 久久riav| 欧美精选在线| 男人的天堂最新网址| 久久久噜噜噜久久人人看| 毛片aaaaa| 69堂成人精品免费视频| 国产女主播在线直播| 国语自产精品视频在免费| 曰本一区二区| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 一本久道综合久久精品| 女同性αv亚洲女同志| 国产精品久久久久影视| 7799精品视频天天看| 日韩大片免费观看视频播放| 色综合999| 91热福利电影| 欧美va久久久噜噜噜久久| 91香蕉视频污版| 久久精品一区四区| 亚洲国产成人精品女人久久| 日韩精品在线电影| 高清毛片在线观看| 国产日韩二区| 亚洲国产免费| av免费观看不卡| 亚洲狠狠爱一区二区三区| 精品国产伦一区二区三| 久久深夜福利免费观看| 深夜福利亚洲| 尤物国产精品| 美女高潮久久久| 自拍偷拍第9页| 欧美日韩黄视频| 麻豆视频网站在线观看| 成人国产亚洲精品a区天堂华泰| 日韩精品一卡| 日本高清一区二区视频| 亚洲欧洲精品一区二区三区不卡| 一区二区日韩在线观看| 日韩三级成人av网| 精品三级国产| 国产欧美久久久久| 成人av动漫在线| 在线观看日韩中文字幕| 精品亚洲一区二区三区在线观看| 两个人看的在线视频www| 欧美日韩电影一区二区| 老鸭窝91久久精品色噜噜导演| 亚洲精品午夜视频| 欧美性生活影院| 在线免费一级片| 色综合视频一区二区三区日韩| 精品国产福利| 青青草视频在线免费直播| 91久久久久久| 国内综合精品午夜久久资源| 91传媒理伦片在线观看| 午夜精品影院在线观看| 亚洲欧洲综合在线| 国产成一区二区| 日韩在线欧美| 少妇欧美激情一区二区三区| 亚洲福利一二三区| 天堂av中文在线资源库| 国产精品久久一区| 中文字幕人成人乱码| 伊人久久一区二区三区| 色狠狠桃花综合| 黄色成人影院| 精品日本一区二区三区在线观看| 日韩精品久久久久久| 爱爱视频免费在线观看| 欧美精品一区视频| 韩国精品主播一区二区在线观看| 一区二区三区av| 成人免费观看av| 欧美日韩在线视频播放| 久久久999成人| 久久精品色综合| 九色porny自拍| 婷婷综合另类小说色区| 9i精品一二三区| 国产91aaa| 麻豆一区二区三| 日韩精品一区二区av| 日韩在线小视频| 日韩精品福利一区二区三区| 国产欧美激情视频| 色偷偷88欧美精品久久久| 色www永久免费视频首页在线| 日本亚洲自拍|