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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Go 语言简介(下)— 特性

發布時間:2025/3/21 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go 语言简介(下)— 特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

希望你看到這篇文章的時候還是在公交車和地鐵上正在上下班的時間,我希望我的這篇文章可以讓你利用這段時間了解一門語言。當然,希望你不會因為看我的文章而錯過站。呵呵。

如果你還不了解Go語言的語法,還請你移步先看一下上篇——《Go語言簡介(上):語法

goroutine

GoRoutine主要是使用go關鍵字來調用函數,你還可以使用匿名函數,如下所示:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 package main import "fmt" func f(msg string) { ????fmt.Println(msg) } func main(){ ????go f("goroutine") ????go func(msg string) { ????????fmt.Println(msg) ????}("going") }

我們再來看一個示例,下面的代碼中包括很多內容,包括時間處理,隨機數處理,還有goroutine的代碼。如果你熟悉C語言,你應該會很容易理解下面的代碼。

你可以簡單的把go關鍵字調用的函數想像成pthread_create。下面的代碼使用for循環創建了3個線程,每個線程使用一個隨機的Sleep時間,然后在routine()函數中會輸出一些線程執行的時間信息。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 package main import "fmt" import "time" import "math/rand" func routine(name string, delay time.Duration) { ????t0 := time.Now() ????fmt.Println(name, " start at ", t0) ????time.Sleep(delay) ????t1 := time.Now() ????fmt.Println(name, " end at ", t1) ????fmt.Println(name, " lasted ", t1.Sub(t0)) } func main() { ????//生成隨機種子 ????rand.Seed(time.Now().Unix()) ????var name string ????for i:=0; i<3; i++{ ????????name = fmt.Sprintf("go_%02d", i) //生成ID ????????//生成隨機等待時間,從0-4秒 ????????go routine(name, time.Duration(rand.Intn(5)) * time.Second) ????} ????//讓主進程停住,不然主進程退了,goroutine也就退了 ????var input string ????fmt.Scanln(&input) ????fmt.Println("done") }

運行的結果可能是:

1 2 3 4 5 6 7 8 9 go_00? start at? 2012-11-04 19:46:35.8974894 +0800 +0800 go_01? start at? 2012-11-04 19:46:35.8974894 +0800 +0800 go_02? start at? 2012-11-04 19:46:35.8974894 +0800 +0800 go_01? end at? 2012-11-04 19:46:36.8975894 +0800 +0800 go_01? lasted? 1.0001s go_02? end at? 2012-11-04 19:46:38.8987895 +0800 +0800 go_02? lasted? 3.0013001s go_00? end at? 2012-11-04 19:46:39.8978894 +0800 +0800 go_00? lasted? 4.0004s

goroutine的并發安全性

關于goroutine,我試了一下,無論是Windows還是Linux,基本上來說是用操作系統的線程來實現的。不過,goroutine有個特性,也就是說,如果一個goroutine沒有被阻塞,那么別的goroutine就不會得到執行。這并不是真正的并發,如果你要真正的并發,你需要在你的main函數的第一行加上下面的這段代碼:

1 2 3 import "runtime" ... runtime.GOMAXPROCS(4)

還是讓我們來看一個有并發安全性問題的示例(注意:我使用了C的方式來寫這段Go的程序)

這是一個經常出現在教科書里賣票的例子,我啟了5個goroutine來賣票,賣票的函數sell_tickets很簡單,就是隨機的sleep一下,然后對全局變量total_tickets作減一操作。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 package main import "fmt" import "time" import "math/rand" import "runtime" var total_tickets int32 = 10; func sell_tickets(i int){ ????for{ ????????if total_tickets > 0 { //如果有票就賣 ????????????time.Sleep( time.Duration(rand.Intn(5)) * time.Millisecond) ????????????total_tickets-- //賣一張票 ????????????fmt.Println("id:", i, "? ticket:", total_tickets) ????????}else{ ????????????break ????????} ????} } func main() { ????runtime.GOMAXPROCS(4) //我的電腦是4核處理器,所以我設置了4 ????rand.Seed(time.Now().Unix()) //生成隨機種子 ????for i := 0; i < 5; i++ { //并發5個goroutine來賣票 ?????????go sell_tickets(i) ????} ????//等待線程執行完 ????var input string ????fmt.Scanln(&input) ????fmt.Println(total_tickets, "done") //退出時打印還有多少票 }

這個程序毋庸置疑有并發安全性問題,所以執行起來你會看到下面的結果:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $go run sell_tickets.go id: 0?? ticket: 9? id: 0?? ticket: 8? id: 4?? ticket: 7? id: 1?? ticket: 6? id: 3?? ticket: 5? id: 0?? ticket: 4? id: 3?? ticket: 3? id: 2?? ticket: 2? id: 0?? ticket: 1? id: 3?? ticket: 0? id: 1?? ticket: -1? id: 4?? ticket: -2? id: 2?? ticket: -3? id: 0?? ticket: -4? -4 done

可見,我們需要使用上鎖,我們可以使用互斥量來解決這個問題。下面的代碼,我只列出了修改過的內容:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package main import "fmt" import "time" import "math/rand" import "sync" import "runtime" var total_tickets int32 = 10; var mutex = &sync.Mutex{} //可簡寫成:var mutex sync.Mutex func sell_tickets(i int){ ????for total_tickets>0 { ????????mutex.Lock() ????????if total_tickets > 0 { ????????????time.Sleep( time.Duration(rand.Intn(5)) * time.Millisecond) ????????????total_tickets-- ????????????fmt.Println(i, total_tickets) ????????} ????????mutex.Unlock() ????} } ....... ......

原子操作

說到并發就需要說說原子操作,相信大家還記得我寫的那篇《無鎖隊列的實現》一文,里面說到了一些CAS – CompareAndSwap的操作。Go語言也支持。你可以看一下相當的文檔

我在這里就舉一個很簡單的示例:下面的程序有10個goroutine,每個會對cnt變量累加20次,所以,最后的cnt應該是200。如果沒有atomic的原子操作,那么cnt將有可能得到一個小于200的數。

下面使用了atomic操作,所以是安全的。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package main import "fmt" import "time" import "sync/atomic" func main() { ????var cnt uint32 = 0 ????for i := 0; i < 10; i++ { ????????go func() { ????????????for i:=0; i<20; i++ { ????????????????time.Sleep(time.Millisecond) ????????????????atomic.AddUint32(&cnt, 1) ????????????} ????????}() ????} ????time.Sleep(time.Second)//等一秒鐘等goroutine完成 ????cntFinal := atomic.LoadUint32(&cnt)//取數據 ????fmt.Println("cnt:", cntFinal) }

這樣的函數還有很多,參看go的atomic包文檔(被墻)

Channel 信道

Channal是什么?Channal就是用來通信的,就像Unix下的管道一樣,在Go中是這樣使用Channel的。

下面的程序演示了一個goroutine和主程序通信的例程。這個程序足夠簡單了。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 package main import "fmt" func main() { ????//創建一個string類型的channel ????channel := make(chan string) ????//創建一個goroutine向channel里發一個字符串 ????go func() { channel <- "hello" }() ????msg := <- channel ????fmt.Println(msg) }

指定channel的buffer

指定buffer的大小很簡單,看下面的程序:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package main import "fmt" func main() { ????channel := make(chan string, 2) ????go func() { ????????channel <- "hello" ????????channel <- "World" ????}() ????msg1 := <-channel ????msg2 := <-channel ????fmt.Println(msg1, msg2) }

Channel的阻塞

注意,channel默認上是阻塞的,也就是說,如果Channel滿了,就阻塞寫,如果Channel空了,就阻塞讀。于是,我們就可以使用這種特性來同步我們的發送和接收端。

下面這個例程說明了這一點,代碼有點亂,不過我覺得不難理解。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 package main import "fmt" import "time" func main() { ????channel := make(chan string) //注意: buffer為1 ????go func() { ????????channel <- "hello" ????????fmt.Println("write \"hello\" done!") ????????channel <- "World" //Reader在Sleep,這里在阻塞 ????????fmt.Println("write \"World\" done!") ????????fmt.Println("Write go sleep...") ????????time.Sleep(3*time.Second) ????????channel <- "channel" ????????fmt.Println("write \"channel\" done!") ????}() ????time.Sleep(2*time.Second) ????fmt.Println("Reader Wake up...") ????msg := <-channel ????fmt.Println("Reader: ", msg) ????msg = <-channel ????fmt.Println("Reader: ", msg) ????msg = <-channel //Writer在Sleep,這里在阻塞 ????fmt.Println("Reader: ", msg) }

上面的代碼輸出的結果如下:

1 2 3 4 5 6 7 8 Reader Wake up... Reader:? hello write "hello" done! write "World" done! Write go sleep... Reader:? World write "channel" done! Reader:? channel

Channel阻塞的這個特性還有一個好處是,可以讓我們的goroutine在運行的一開始就阻塞在從某個channel領任務,這樣就可以作成一個類似于線程池一樣的東西。關于這個程序我就不寫了。我相信你可以自己實現的。

多個Channel的select

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package main import "time" import "fmt" func main() { ????//創建兩個channel - c1 c2 ????c1 := make(chan string) ????c2 := make(chan string) ????//創建兩個goruntine來分別向這兩個channel發送數據 ????go func() { ????????time.Sleep(time.Second * 1) ????????c1 <- "Hello" ????}() ????go func() { ????????time.Sleep(time.Second * 1) ????????c2 <- "World" ????}() ????//使用select來偵聽兩個channel ????for i := 0; i < 2; i++ { ????????select { ????????case msg1 := <-c1: ????????????fmt.Println("received", msg1) ????????case msg2 := <-c2: ????????????fmt.Println("received", msg2) ????????} ????} }

注意:上面的select是阻塞的,所以,才搞出ugly的for i <2這種東西

Channel select阻塞的Timeout

解決上述那個for循環的問題,一般有兩種方法:一種是阻塞但有timeout,一種是無阻塞。我們來看看如果給select設置上timeout的。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 for { ????timeout_cnt := 0 ????select { ????case msg1 := <-c1: ????????fmt.Println("msg1 received", msg1) ????case msg2 := <-c2: ????????fmt.Println("msg2 received", msg2) ????case? <-time.After(time.Second * 30): ????????fmt.Println("Time Out") ????????timout_cnt++ ????} ????if time_cnt > 3 { ????????break ????} }

上面代碼中高亮的代碼主要是用來讓select返回的,注意 case中的time.After事件。

Channel的無阻塞

好,我們再來看看無阻塞的channel,其實也很簡單,就是在select中加入default,如下所示:

1 2 3 4 5 6 7 8 9 10 11 for { ????select { ????case msg1 := <-c1: ????????fmt.Println("received", msg1) ????case msg2 := <-c2: ????????fmt.Println("received", msg2) ????default: //default會導致無阻塞 ????????fmt.Println("nothing received!") ????????time.Sleep(time.Second) ????} }

Channel的關閉

關閉Channel可以通知對方內容發送完了,不用再等了。參看下面的例程:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 package main import "fmt" import "time" import "math/rand" func main() { ????channel := make(chan string) ????rand.Seed(time.Now().Unix()) ????//向channel發送隨機個數的message ????go func () { ????????cnt := rand.Intn(10) ????????fmt.Println("message cnt :", cnt) ????????for i:=0; i<cnt; i++{ ????????????channel <- fmt.Sprintf("message-%2d", i) ????????} ????????close(channel) //關閉Channel ????}() ????var more bool = true ????var msg string ????for more { ????????select{ ????????//channel會返回兩個值,一個是內容,一個是還有沒有內容 ????????case msg, more = <- channel: ????????????if more { ????????????????fmt.Println(msg) ????????????}else{ ????????????????fmt.Println("channel closed!") ????????????} ????????} ????} }

定時器

Go語言中可以使用time.NewTimer或time.NewTicker來設置一個定時器,這個定時器會綁定在你的當前channel中,通過channel的阻塞通知機器來通知你的程序。

下面是一個timer的示例。

1 2 3 4 5 6 7 8 9 10 11 package main import "time" import "fmt" func main() { ????timer := time.NewTimer(2*time.Second) ????<- timer.C ????fmt.Println("timer expired!") }

上面的例程看起來像一個Sleep,是的,不過Timer是可以Stop的。你需要注意Timer只通知一次。如果你要像C中的Timer能持續通知的話,你需要使用Ticker。下面是Ticker的例程:

1 2 3 4 5 6 7 8 9 10 11 12 package main import "time" import "fmt" func main() { ????ticker := time.NewTicker(time.Second) ????for t := range ticker.C { ????????fmt.Println("Tick at", t) ????} }

上面的這個ticker會讓你程序進入死循環,我們應該放其放在一個goroutine中。下面這個程序結合了timer和ticker

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package main import "time" import "fmt" func main() { ????ticker := time.NewTicker(time.Second) ????go func () { ????????for t := range ticker.C { ????????????fmt.Println(t) ????????} ????}() ????//設置一個timer,10鈔后停掉ticker ????timer := time.NewTimer(10*time.Second) ????<- timer.C ????ticker.Stop() ????fmt.Println("timer expired!") }

Socket編程

下面是我嘗試的一個Echo Server的Socket代碼,感覺還是挺簡單的。

Server端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 package main import ( ????"net" ????"fmt" ????"io" ) const RECV_BUF_LEN = 1024 func main() { ????listener, err := net.Listen("tcp", "0.0.0.0:6666")//偵聽在6666端口 ????if err != nil { ????????panic("error listening:"+err.Error()) ????} ????fmt.Println("Starting the server") ????for { ????????conn, err := listener.Accept() //接受連接 ????????if err != nil { ????????????panic("Error accept:"+err.Error()) ????????} ????????fmt.Println("Accepted the Connection :", conn.RemoteAddr()) ????????go EchoServer(conn) ????} } func EchoServer(conn net.Conn) { ????buf := make([]byte, RECV_BUF_LEN) ????defer conn.Close() ????for { ????????n, err := conn.Read(buf); ????????switch err { ????????????case nil: ????????????????conn.Write( buf[0:n] ) ????????????case io.EOF: ????????????????fmt.Printf("Warning: End of data: %s \n", err); ????????????????return ????????????default: ????????????????fmt.Printf("Error: Reading data : %s \n", err); ????????????????return ????????} ?????} }
Client端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 package main import ( ????"fmt" ????"time" ????"net" ) const RECV_BUF_LEN = 1024 func main() { ????conn,err := net.Dial("tcp", "127.0.0.1:6666") ????if err != nil { ????????panic(err.Error()) ????} ????defer conn.Close() ????buf := make([]byte, RECV_BUF_LEN) ????for i := 0; i < 5; i++ { ????????//準備要發送的字符串 ????????msg := fmt.Sprintf("Hello World, %03d", i) ????????n, err := conn.Write([]byte(msg)) ????????if err != nil { ????????????println("Write Buffer Error:", err.Error()) ????????????break ????????} ????????fmt.Println(msg) ????????//從服務器端收字符串 ????????n, err = conn.Read(buf) ????????if err !=nil { ????????????println("Read Buffer Error:", err.Error()) ????????????break ????????} ????????fmt.Println(string(buf[0:n])) ????????//等一秒鐘 ????????time.Sleep(time.Second) ????} }

系統調用

Go語言那么C,所以,一定會有一些系統調用。Go語言主要是通過兩個包完成的。一個是os包,一個是syscall包。(注意,鏈接被墻)

這兩個包里提供都是Unix-Like的系統調用,

  • syscall里提供了什么Chroot/Chmod/Chmod/Chdir…,Getenv/Getgid/Getpid/Getgroups/Getpid/Getppid…,還有很多如Inotify/Ptrace/Epoll/Socket/…的系統調用。
  • os包里提供的東西不多,主要是一個跨平臺的調用。它有三個子包,Exec(運行別的命令), Signal(捕捉信號)和User(通過uid查name之類的)

syscall包的東西我不舉例了,大家可以看看《Unix高級環境編程》一書。

os里的取幾個例:

環境變量

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package main import "os" import "strings" func main() { ????os.Setenv("WEB", "http://coolshell.cn") //設置環境變量 ????println(os.Getenv("WEB")) //讀出來 ????for _, env := range os.Environ() { //窮舉環境變量 ????????e := strings.Split(env, "=") ????????println(e[0], "=", e[1]) ????} }

執行命令行

下面是一個比較簡單的示例

1 2 3 4 5 6 7 8 9 10 11 12 package main import "os/exec" import "fmt" func main() { ????cmd := exec.Command("ping", "127.0.0.1") ????out, err := cmd.Output() ????if err!=nil { ????????println("Command Error!", err.Error()) ????????return ????} ????fmt.Println(string(out)) }

正規一點的用來處理標準輸入和輸出的示例如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package main import ( ????"strings" ????"bytes" ????"fmt" ????"log" ????"os/exec" ) func main() { ????cmd := exec.Command("tr", "a-z", "A-Z") ????cmd.Stdin = strings.NewReader("some input") ????var out bytes.Buffer ????cmd.Stdout = &out ????err := cmd.Run() ????if err != nil { ????????log.Fatal(err) ????} ????fmt.Printf("in all caps: %q\n", out.String()) }

命令行參數

Go語言中處理命令行參數很簡單:(使用os的Args就可以了)

1 2 3 4 5 func main() { ????args := os.Args ????fmt.Println(args) //帶執行文件的 ????fmt.Println(args[1:]) //不帶執行文件的 }

在Windows下,如果運行結果如下:

C:\Projects\Go>go run args.go aaa bbb ccc ddd
[C:\Users\haoel\AppData\Local\Temp\go-build742679827\command-line-arguments\_
obj\a.out.exe aaa bbb ccc ddd]
[aaa bbb ccc ddd]

那么,如果我們要搞出一些像 mysql -uRoot -hLocalhost -pPwd 或是像 cc -O3 -Wall -o a a.c 這樣的命令行參數我們怎么辦?Go提供了一個package叫flag可以容易地做到這一點

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package main import "flag" import "fmt" func main() { ????//第一個參數是“參數名”,第二個是“默認值”,第三個是“說明”。返回的是指針 ????host := flag.String("host", "coolshell.cn", "a host name ") ????port := flag.Int("port", 80, "a port number") ????debug := flag.Bool("d", false, "enable/disable debug mode") ????//正式開始Parse命令行參數 ????flag.Parse() ????fmt.Println("host:", *host) ????fmt.Println("port:", *port) ????fmt.Println("debug:", *debug) }

執行起來會是這個樣子:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #如果沒有指定參數名,則使用默認值 $ go run flagtest.go host: coolshell.cn port: 80 debug: false #指定了參數名后的情況 $ go run flagtest.go -host=localhost -port=22 -d host: localhost port: 22 debug: true #用法出錯了(如:使用了不支持的參數,參數沒有=) $ go build flagtest.go $ ./flagtest -debug -host localhost -port=22 flag provided but not defined: -debug Usage of flagtest: ??-d=false: enable/disable debug mode ??-host="coolshell.cn": a host name ??-port=80: a port number exit status 2

感覺還是挺不錯的吧。

一個簡單的HTTP Server

代碼勝過千言萬語。呵呵。這個小程序讓我又找回以前用C寫CGI的時光了。(Go的官方文檔是《Writing Web Applications》)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 package main import ( ????"fmt" ????"net/http" ????"io/ioutil" ????"path/filepath" ) const http_root = "/home/haoel/coolshell.cn/" func main() { ????http.HandleFunc("/", rootHandler) ????http.HandleFunc("/view/", viewHandler) ????http.HandleFunc("/html/", htmlHandler) ????http.ListenAndServe(":8080", nil) } //讀取一些HTTP的頭 func rootHandler(w http.ResponseWriter, r *http.Request) { ????fmt.Fprintf(w, "rootHandler: %s\n", r.URL.Path) ????fmt.Fprintf(w, "URL: %s\n", r.URL) ????fmt.Fprintf(w, "Method: %s\n", r.Method) ????fmt.Fprintf(w, "RequestURI: %s\n", r.RequestURI ) ????fmt.Fprintf(w, "Proto: %s\n", r.Proto) ????fmt.Fprintf(w, "HOST: %s\n", r.Host) } //特別的URL處理 func viewHandler(w http.ResponseWriter, r *http.Request) { ????fmt.Fprintf(w, "viewHandler: %s", r.URL.Path) } //一個靜態網頁的服務示例。(在http_root的html目錄下) func htmlHandler(w http.ResponseWriter, r *http.Request) { ????fmt.Printf("htmlHandler: %s\n", r.URL.Path) ????? ????filename := http_root + r.URL.Path ????fileext := filepath.Ext(filename) ????content, err := ioutil.ReadFile(filename) ????if err != nil { ????????fmt.Printf("?? 404 Not Found!\n") ????????w.WriteHeader(http.StatusNotFound) ????????return ????} ????? ????var contype string ????switch fileext { ????????case ".html", "htm": ????????????contype = "text/html" ????????case ".css": ????????????contype = "text/css" ????????case ".js": ????????????contype = "application/javascript" ????????case ".png": ????????????contype = "image/png" ????????case ".jpg", ".jpeg": ????????????contype = "image/jpeg" ????????case ".gif": ????????????contype = "image/gif" ????????default: ????????????contype = "text/plain" ????} ????fmt.Printf("ext %s, ct = %s\n", fileext, contype) ????? ????w.Header().Set("Content-Type", contype) ????fmt.Fprintf(w, "%s", content) ????? }

Go的功能庫有很多,大家自己慢慢看吧。我再吐個槽——Go的文檔真不好讀。例子太少了

先說這么多吧。這是我周末兩天學Go語言學到的東西,寫得太倉促了,而且還有一些東西理解不到位,還大家請指正!

(全文完)

from:?http://coolshell.cn/articles/8489.html

總結

以上是生活随笔為你收集整理的Go 语言简介(下)— 特性的全部內容,希望文章能夠幫你解決所遇到的問題。

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

中文字幕欧美日韩va免费视频 | 午夜精品一区二区三区在线视频 | 久草在线中文视频 | 国产黄色免费电影 | 中文字幕字幕中文 | 综合久久网站 | 成人国产网站 | 久久久精选 | 国产精品精品久久久久久 | 97视频在线观看网址 | 天天爽综合网 | 亚洲黄色在线免费观看 | 中文字幕 第二区 | 日韩精品一区二区三区免费视频观看 | 91欧美国产 | 成人亚洲欧美 | 久草网站在线观看 | 夜夜嗨av色一区二区不卡 | 在线观看成人一级片 | 日韩综合一区二区 | 最新超碰在线 | 国产99精品在线观看 | 免费a v在线| 福利片免费看 | 我要色综合天天 | 国产丝袜网站 | 夜夜骑日日操 | 国产在线资源 | 香蕉日日 | 成人av一区二区在线观看 | 国产成人精品一区二区在线 | 亚洲欧美视频在线播放 | 天天天插 | 美女网站在线看 | 九九九九色 | 精品国产一区在线观看 | 国产+日韩欧美 | 91理论片午午伦夜理片久久 | 久草视频在线免费 | 日韩av影片在线观看 | 黄色网址在线播放 | 久久夜夜夜| 久久伊人婷婷 | 18av在线视频 | 毛片网在线播放 | 97视频中文字幕 | 国产不卡av在线播放 | 香蕉一区 | 日韩在线视 | 黄色亚洲片 | 日韩黄在线观看 | 亚洲网站在线 | 九九久久影院 | 超碰在线个人 | 国产精品1区2区3区 久久免费视频7 | 四虎永久免费在线观看 | 午夜久久久久 | 欧美日韩aaaa | 国产免费观看高清完整版 | 免费看毛片在线 | 色视频在线免费观看 | 国内三级在线观看 | 97在线成人 | 伊人国产在线观看 | 在线观看亚洲免费视频 | wwwwwww黄| 久久亚洲福利视频 | 国产精品久久久久毛片大屁完整版 | 92国产精品久久久久首页 | 国产91影视 | 免费看黄视频 | 999久久国精品免费观看网站 | www久久久 | 免费看一级黄色大全 | 久久久久久久久黄色 | 精品自拍网 | 亚洲 欧美 日韩 综合 | 免费黄在线观看 | 人人爽夜夜爽 | 亚洲午夜精品一区二区三区电影院 | 日本中文在线观看 | 二区三区在线观看 | 六月丁香在线观看 | 2021av在线 | 999精品 | 欧美精品久久久久久久久免 | 在线看中文字幕 | 日韩在线电影一区二区 | 丁香综合五月 | 国产午夜在线观看视频 | 玖玖视频精品 | 超碰人人草人人 | 香蕉网站在线观看 | 免费色视频 | ww亚洲ww亚在线观看 | 久久久www | 热九九精品 | 欧美日韩精品免费观看 | 日韩高清一 | 久久久久激情电影 | 狠狠88综合久久久久综合网 | 久久亚洲日本 | 91av福利视频 | 手机看片国产 | 日韩精品在线免费观看 | 狠狠色丁香婷婷综合久小说久 | 99产精品成人啪免费网站 | 综合色婷婷 | 成人av电影免费在线播放 | 国产 视频 高清 免费 | 亚洲va在线va天堂 | 国产精品永久免费 | 狠狠躁夜夜躁人人爽视频 | 丁香激情婷婷 | 国产精品久久久久久婷婷天堂 | 99视频在线观看视频 | 国产一二三区av | 日韩视频三区 | 九9热这里真品2 | 在线国产激情视频 | 成人免费视频播放 | 久久久www成人免费精品 | 国产在线观看一区 | av线上免费看 | 国产精品毛片久久久久久久久久99999999 | 免费观看性生交 | 日韩免费一区二区 | 午夜色站 | 日批在线看 | 亚洲伊人成综合网 | 99色精品视频| 精品女同一区二区三区在线观看 | 可以免费看av | 日韩女同一区二区三区在线观看 | 在线播放国产一区二区三区 | 国产一区二区在线免费播放 | 国产免费又粗又猛又爽 | 久久一区二区三区超碰国产精品 | 国产成人一区二区三区影院在线 | 亚洲va综合va国产va中文 | 中文av在线免费观看 | 欧美成人播放 | 亚洲精品女 | 麻豆视频免费在线 | 香蕉网在线观看 | 午夜精品一区二区三区视频免费看 | 97天天综合网 | 国产无套一区二区三区久久 | 久草手机视频 | 国产无区一区二区三麻豆 | 九月婷婷人人澡人人添人人爽 | 人人插人人草 | 欧美尹人 | 久99久视频| 国产97碰免费视频 | 96久久精品| 天天操天天草 | 在线免费av网站 | 欧美有色 | 国产91av视频在线观看 | 九九精品久久久 | 欧美色操 | 国产精品毛片一区二区 | 亚洲精品视频免费在线 | 伊人成人精品 | 高清av网| 五月网婷婷 | 97香蕉视频 | 99re久久资源最新地址 | 黄色软件在线看 | 日本公妇在线观看高清 | 久久久这里有精品 | 久久视频一区 | 成年人在线观看网站 | 精品国产乱码久久久久久1区2匹 | 国产丝袜制服在线 | 久久国产精品二国产精品中国洋人 | 久久久久久久久久久福利 | 91成人国产 | 精品一二三四在线 | 亚洲黄电影 | 91久久偷偷做嫩草影院 | 成人aaa毛片 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 特黄免费av | 国产一区二区在线播放视频 | 日韩色在线 | 久久艹影院 | 91av视频导航 | 精品久久久久久国产偷窥 | 欧美电影黄色 | 欧美激情xxxx性bbbb | 免费观看久久 | 青青河边草免费 | 日韩网站在线看片你懂的 | 日本最新中文字幕 | 久久国产精品一区二区三区 | 天天玩天天干天天操 | 免费日韩在线 | 欧美地下肉体性派对 | 国产成人精品一二三区 | 亚洲成人一二三 | 综合精品久久 | 99视频网站 | 黄网站app在线观看免费视频 | 亚洲精品一区二区三区新线路 | 91免费视频黄 | 国产精品久久久久一区二区三区共 | 久久久久久久精 | 国产91综合一区在线观看 | 91色一区二区三区 | 国产免费小视频 | 国产第一页福利影院 | 国产精品一区二区免费在线观看 | 久久婷婷激情 | 欧美日韩中文字幕综合视频 | 国产精品国产三级国产aⅴ9色 | 久草在线最新 | 亚洲欧美在线观看视频 | 亚洲精品高清在线 | 精品在线小视频 | 超碰在线免费福利 | 欧美三级高清 | 亚洲精品456在线播放第一页 | www.啪啪.com| 日韩视频一区二区在线观看 | 久久久精品免费观看 | 亚洲一区二区91 | 亚洲精品白浆高清久久久久久 | 涩涩伊人 | 国产精品视频线看 | 成人国产精品av | 色停停五月天 | 日韩亚洲国产精品 | 在线久久 | 91视频这里只有精品 | 亚洲激情电影在线 | 久久久久久综合网天天 | 夜夜躁日日躁狠狠躁 | 狠狠做深爱婷婷综合一区 | 欧美 激情 国产 91 在线 | 99在线精品免费视频九九视 | 四虎影视精品永久在线观看 | 在线免费观看视频一区二区三区 | 日本高清xxxx | 日韩久久电影 | 91传媒在线看 | 欧美午夜性 | 国产视频18 | 又黄又色又爽 | 黄色国产区| 天天干人人干 | 国产美女精品久久久 | 欧美日韩国产一区二区三区 | 在线免费观看视频a | 国产精品久久久久久久av大片 | 夜夜骑天天操 | 免费看的黄网站软件 | 国产精彩视频一区二区 | 99精品免费观看 | 国产高清一区二区 | 亚洲国产高清在线 | 国产精品嫩草69影院 | 97人人模人人爽人人少妇 | www.888av| 国产原创av在线 | 亚洲日本精品视频 | 日韩videos高潮hd | 亚洲dvd| 国产精品毛片一区视频 | 亚洲高清精品在线 | 91视频久久 | 亚洲码国产日韩欧美高潮在线播放 | 亚洲精品国偷自产在线99热 | 91精品婷婷国产综合久久蝌蚪 | 天天摸天天弄 | 手机成人av | www.天天操 | 日本最新一区二区三区 | 亚洲精品美女久久久久网站 | 在线观看视频一区二区三区 | 中文字幕在线观看视频免费 | 久久久精品一区二区 | 亚洲精品高清视频在线观看 | 久草电影在线 | 特级片免费看 | 色插综合 | 欧美孕交vivoestv另类 | 欧美日韩国产在线一区 | 黄色小网站在线观看 | 麻豆mv在线观看 | 国产 欧美 日本 | 丁香久久久| 国产精品久久久久高潮 | 日韩欧美精品在线观看 | 日韩在线观看视频中文字幕 | 亚洲综合网 | www.狠狠操.com | 国产精品网红直播 | 狠狠躁日日躁狂躁夜夜躁 | 69国产精品成人在线播放 | 久久久久久久99精品免费观看 | 亚洲一区动漫 | 在线电影 一区 | 精品一区免费 | 精品免费在线视频 | 天天操夜夜操夜夜操 | 久久久久高清 | 99久久综合国产精品二区 | 青青草国产在线 | 超碰在线98| 国内99视频 | 四虎在线永久免费观看 | 日本精品xxxx| 在线观看岛国av | 开心丁香婷婷深爱五月 | 免费av小说 | 久久系列 | 国产一级电影在线 | 亚洲国产免费av | 久久99热精品 | 国产精品a级 | 亚洲自拍偷拍色图 | 欧美99热| 天天干天天拍天天操 | www.狠狠色 | 国产麻豆视频网站 | 精品色999 | 91大神dom调教在线观看 | 亚洲精品影视 | 这里只有精彩视频 | 亚洲精品国产精品久久99热 | 免费色视频 | av亚洲产国偷v产偷v自拍小说 | 中文字幕在线国产 | 免费av观看 | av先锋影音少妇 | 日韩视频在线观看视频 | 天天操狠狠操夜夜操 | 国产精品视频专区 | 亚洲黄a | 久久国产精品免费视频 | 久色免费视频 | 国产三级国产精品国产专区50 | 国产成人精品在线播放 | www.com.日本一级 | 韩日精品在线 | 久久国产精品久久精品国产演员表 | 91视频免费看片 | 天堂av高清 | 在线探花 | 天天干天天干天天射 | 日韩mv欧美mv国产精品 | 久久国产精品99精国产 | 人人干干人人 | 免费看片成人 | 奇米7777狠狠狠琪琪视频 | 1024手机在线看 | 国产日韩欧美在线播放 | 天天操天天综合网 | 国产亚洲精品美女久久 | zzijzzij亚洲成熟少妇 | 91香蕉视频在线下载 | 91av视频在线观看 | 88av视频 | 午夜视频在线观看一区二区三区 | 国产免费二区 | 国产在线自 | 精品久久久久久国产91 | 99久高清在线观看视频99精品热在线观看视频 | 日韩精品在线视频免费观看 | 黄影院| 亚洲少妇影院 | 亚洲国产美女精品久久久久∴ | 少妇性bbb搡bbb爽爽爽欧美 | www.777奇米| 免费午夜在线视频 | av电影在线免费 | 天天草天天操 | 欧美精品v国产精品v日韩精品 | www日韩在线| 国产婷婷视频在线 | 欧美aa在线观看 | 91久久精品一区二区二区 | 精品成人免费 | 国产精品精品 | 玖玖在线观看视频 | 超级碰99 | 91中文字幕| 亚洲精品乱码久久久久 | 中文字幕国产在线 | 久久99精品国产一区二区三区 | 日韩午夜在线观看 | 国产成人av网 | 亚洲精品国产欧美在线观看 | 久久久久一区 | 在线免费观看黄网站 | 亚洲精品午夜久久久久久久 | 久久久毛片 | 日韩精品一区二区在线 | 日韩精品一区二区三区三炮视频 | 中文字幕一区二区三区久久蜜桃 | 黄色三级在线看 | 最近中文字幕第一页 | 337p欧美 | 国产成人免费在线观看 | 久久久免费电影 | 国产精品久久久一区二区三区网站 | 久久新视频| 国产精品一区二区三区视频免费 | 欧美久久久久久久久久久久久 | 91免费观看视频网站 | 国产亚洲情侣一区二区无 | 亚洲精品视频在线观看网站 | 国产高清小视频 | 狠狠久久伊人 | ,午夜性刺激免费看视频 | 永久免费毛片 | 亚洲精品视频www | 成人在线黄色电影 | 玖玖精品视频 | 欧美精品国产综合久久 | 久久人人射 | 精油按摩av | 午夜影视av | 粉嫩av一区二区三区四区五区 | 亚洲综合在线一区二区三区 | 夜夜躁狠狠躁日日躁视频黑人 | 欧美精品久久 | 国产一级视频在线 | 日韩特级毛片 | 国产91亚洲 | 激情开心站 | 欧美爽爽爽 | 日韩视频免费在线 | 手机看片 | 精品99视频 | 韩国av免费在线 | 亚洲一级二级 | 黄色中文字幕在线 | 午夜精品一区二区三区四区 | 丁香婷婷自拍 | 久久久www成人免费精品张筱雨 | 免费午夜av | 国产精品视频app | 国产视频综合在线 | 精品国产人成亚洲区 | 亚洲第一中文网 | 色无五月| 久久综合丁香 | 免费日韩av片 | 亚洲国产日韩一区 | 色多多在线观看 | 97在线观看免费高清 | 免费看的国产视频网站 | 久久艹影院| a级黄色片视频 | 国产成人精品综合久久久 | 欧美国产一区在线 | 夜夜夜夜爽 | 午夜精品久久久久久久爽 | 伊人五月婷| 国产特级毛片 | 色国产在线 | 欧美日韩精品免费观看视频 | bayu135国产精品视频 | 午夜国产福利在线观看 | 久久久久久高潮国产精品视 | 奇米网777 | 四虎影视8848aamm | 日韩乱色精品一区二区 | 成人久久视频 | 欧美日韩国产精品久久 | 91大神精品视频在线观看 | 九色精品免费永久在线 | 永久免费的啪啪网站免费观看浪潮 | 欧美日韩有码 | 亚洲资源在线 | 黄色的视频网站 | 深爱激情五月婷婷 | 天天干天天干天天干 | 国产在线看 | 激情丁香久久 | 久久99国产精品免费 | 91免费试看 | 国产精品亚洲片在线播放 | 国产精品色视频 | 欧美一级视频一区 | 国产玖玖在线 | 6080yy精品一区二区三区 | 久99热| 美女视频黄频大全免费 | 久久人人爽人人 | 国产一级电影在线 | 日批视频 | 美女视频永久黄网站免费观看国产 | 精品女同一区二区三区在线观看 | 色综合色综合久久综合频道88 | 97成人资源| 天天射色综合 | 国产探花| 四虎国产精品成人免费影视 | 天天舔天天射天天操 | 日韩av电影中文字幕在线观看 | 91丨九色丨高潮丰满 | 成人禁用看黄a在线 | 天天干天天操 | 国产一区二区精品久久 | 亚洲国产婷婷 | 日韩经典一区二区三区 | 免费成视频 | 色吊丝av中文字幕 | 人人爽人人片 | 国产无遮挡又黄又爽在线观看 | www.五月天| 久青草电影 | 久久久黄色av| 国产福利资源 | 日韩有码在线观看视频 | 麻豆影视在线播放 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 日韩激情中文字幕 | 亚洲精品乱码久久久久久蜜桃欧美 | 久草视频在线新免费 | 天天色天天综合网 | 亚洲国产网站 | 国产精品中文字幕在线播放 | 欧美日韩性视频在线 | 久久99在线观看 | 色亚洲网 | 日韩v欧美v日本v亚洲v国产v | 久艹视频免费观看 | 久久香蕉电影 | 欧美aaa大片| 日韩在线观看视频一区二区三区 | 午夜久久美女 | 亚洲 中文 欧美 日韩vr 在线 | 天天天天天天干 | 人人看人人做人人澡 | 91视频在线自拍 | 久热超碰 | 日本精品久久久久久 | 中文字幕在线免费观看 | 最近日韩中文字幕中文 | 日操操 | 九九有精品 | 欧美精品乱码久久久久久按摩 | 日产乱码一二三区别在线 | 久久婷婷开心 | av综合 日韩 | 在线天堂中文在线资源网 | 玖草在线观看 | 亚洲免费专区 | 香蕉影视app | 狠狠色丁香久久婷婷综合丁香 | 波多野结衣一区二区 | 国产免费精彩视频 | 久久久电影 | 国产精品麻豆一区二区三区 | 久久综合加勒比 | 成人av电影在线观看 | 国产精品久久久久久久久久99 | 国产精品一区一区三区 | 操综合| 国产一级片观看 | 国产一区久久久 | 久草视频在线免费看 | 免费高清看电视网站 | 亚洲伊人色| 亚洲女欲精品久久久久久久18 | 国产大陆亚洲精品国产 | 日韩毛片在线播放 | 字幕网资源站中文字幕 | 99精品视频网 | 久久国产一二区 | 久久99精品久久久久久秒播蜜臀 | 婷婷综合成人 | www.黄色小说.com | 中文字幕视频三区 | 女人18精品一区二区三区 | 亚洲h色精品 | 免费av在线网站 | 在线观看视频黄色 | 国产一区自拍视频 | 中文字幕免费看 | 国产午夜精品一区二区三区在线观看 | 综合在线观看 | 国产韩国精品一区二区三区 | 婷婷色六月天 | 五月婷婷综合激情网 | 国产探花视频在线播放 | 久久视频这里有精品 | 久久久精品成人 | 射射射av| 日韩视频区 | 欧美一级视频在线观看 | a黄在线观看 | 在线中文字幕观看 | 国产又粗又硬又长又爽的视频 | 九九九九九国产 | 97色在线| 日本性xxx| 国产亚洲精品久久久久久久久久 | 日本免费一二三区 | 欧美在线视频不卡 | 久久久国产精品一区二区三区 | 91日本在线播放 | 日韩成人精品一区二区三区 | 日韩欧美精选 | 亚洲成av人片在线观看无 | 国产一卡久久电影永久 | 五月天综合婷婷 | 日韩在线视频免费观看 | 九九免费精品视频在线观看 | av免费网站 | 欧美一区二区三区激情视频 | 婷婷综合亚洲 | 亚洲精品tv | 亚洲jizzjizz日本少妇 | 蜜桃视频日韩 | 精品国产欧美一区二区三区不卡 | 最近中文字幕高清字幕在线视频 | 久久免费电影 | www久久国产 | 亚洲国产精品一区二区久久,亚洲午夜 | 波多野结衣一区三区 | 免费网站看av片 | 奇米影视8888在线观看大全免费 | 97超碰资源总站 | 又黄又网站 | 久久免费黄色网址 | 国产一区av在线 | 国色天香在线 | 国产精品成人在线 | 91精品视频在线观看免费 | 97国产| 亚洲最大免费成人网 | 欧洲精品码一区二区三区免费看 | 婷久久 | 丁香婷婷综合色啪 | 国产午夜一区二区 | 精品a级片| 久久福利在线 | 国内精品久久久久久久97牛牛 | 美女久久久| 国产小视频在线看 | 国产精品ⅴa有声小说 | 国产在线观看一区 | 久久夜视频 | 99在线精品视频在线观看 | 成人片在线播放 | 日韩精品2区 | 国产a级精品 | 91精品国产一区二区三区 | 亚洲免费专区 | 噜噜色官网 | 久久看片 | 国产精品电影在线 | 五月天六月丁香 | 日韩av黄| 国精产品999国精产 久久久久 | 97在线视频观看 | 1024久久| 欧美一二三视频 | 96久久 | 美女视频黄免费的 | 久久私人影院 | 国产精品久久久久久久久久久免费 | 久久国产午夜精品理论片最新版本 | 欧美一级在线 | 久久视频国产精品免费视频在线 | 日韩精品你懂的 | 精品久久一二三区 | 深爱激情五月综合 | 天天干,天天射,天天操,天天摸 | 精品国产99国产精品 | 婷婷六月综合亚洲 | 国产午夜麻豆影院在线观看 | 亚洲国产字幕 | 一区二区三区不卡在线 | 91在线在线观看 | 国产精品正在播放 | 欧洲在线免费视频 | 日本中文字幕高清 | 国产精品成| 成人欧美一区二区三区黑人麻豆 | 一级黄色毛片 | 久久综合久久综合久久综合 | 久久精品国产一区 | 久久福利影视 | 久久久久国产精品厨房 | 亚洲一一在线 | 国产精品久久久久aaaa九色 | 激情综合网五月激情 | 成人在线免费观看视视频 | 高清视频一区二区三区 | 成人a视频| 97超碰人| 免费h在线观看 | 日本一区二区三区视频在线播放 | 精品国产乱码久久久久久1区2匹 | 97视频在线观看成人 | 香蕉视频国产在线观看 | 99国产一区| 久久精品首页 | 国产二区电影 | 成人黄大片视频在线观看 | 日韩丝袜在线观看 | 青青草国产成人99久久 | 久久免费精品一区二区三区 | 正在播放日韩 | 国产一区在线视频 | 亚洲精品字幕在线 | 手机版av在线 | 亚洲综合在线一区二区三区 | 五月天久久综合 | 精品久久国产精品 | 婷婷六月丁香激情 | 波多野结衣在线播放一区 | 国产永久免费观看 | 在线激情网| 在线国产一区二区 | 欧美巨大 | 天天爱天天色 | 五月激情丁香图片 | 久久不射电影院 | 日日爽天天爽 | 夜夜躁狠狠躁日日躁视频黑人 | 六月激情丁香 | 韩国av一区二区三区在线观看 | 亚洲一二三在线 | 999视频在线播放 | 在线黄色国产电影 | 久久精品欧美 | 免费在线观看污 | 伊人久久婷婷 | 亚洲成人资源在线观看 | 亚洲国产中文在线观看 | 国产精品初高中精品久久 | 久久久综合香蕉尹人综合网 | 91大神在线观看视频 | 狠狠躁日日躁狂躁夜夜躁 | 成年人在线免费看 | 狠狠狠狠狠狠狠干 | 免费三级网 | 日韩高清网站 | 欧美在线视频a | 最近日本字幕mv免费观看在线 | 亚洲午夜精品久久久久久久久 | 精品国产综合区久久久久久 | 久久午夜免费视频 | 中文字幕在线观看不卡 | 国产高清免费视频 | 国产成人一区二区三区影院在线 | 日韩精品一区二区三区不卡 | 国产久视频 | 国产人成在线视频 | 国产一区二区精品久久 | 亚洲五月激情 | av免费在线观 | 国产成人在线免费观看 | 91喷水| 欧美日韩免费一区二区 | 中文字幕一区二区三区乱码不卡 | 免费成人av电影 | 国产一区视频免费在线观看 | av电影 一区二区 | 国产精品一区二区av日韩在线 | 欧美一级日韩三级 | 韩国一区二区三区在线观看 | 国产乱码精品一区二区三区介绍 | 国产一级91 | 极品美女被弄高潮视频网站 | 日韩一区视频在线 | 波多野结衣精品在线 | 日韩欧美网址 | 久久久久日本精品一区二区三区 | 丁香色天天 | 91av网站在线观看 | 国产亚洲精品久久久久久电影 | 久久久香蕉视频 | 久久伊99综合婷婷久久伊 | 操操操av| av电影免费在线播放 | 91精品国产欧美一区二区成人 | 中文字幕亚洲欧美 | 一级片观看 | 日日夜夜天天 | 91日韩免费 | 97成人超碰| 日韩欧美xx| 国产成人黄色 | av在线免费网站 | 中文字幕在线观看亚洲 | 免费看片黄色 | 色在线视频 | 成人免费网站视频 | 深夜免费小视频 | 国产理论一区二区三区 | 夜夜操天天摸 | 欧美精品在线视频观看 | 免费观看成人 | 欧美成年性 | 日韩黄在线观看 | 国产电影黄色av | 成年人免费av网站 | 欧美 日韩 国产 中文字幕 | a级片在线播放 | 久久亚洲国产精品 | 日韩精品一区二区三区免费视频观看 | 成人aaa毛片 | 欧美a级片免费看 | 久av在线 | 黄色软件视频网站 | 久久免费播放 | 久草精品视频在线看网站免费 | 青春草免费视频 | 久久激情视频 久久 | 丁香av| 国产精品国内免费一区二区三区 | 国产在线成人 | 精品视频123区在线观看 | 97电影网手机版 | 国产成人精品一区二区在线 | 亚洲欧美一区二区三区孕妇写真 | 国产精品婷婷 | 欧美午夜视频在线 | 欧美韩国日本在线 | 日本久久不卡视频 | 日韩欧美国产视频 | 久艹视频在线观看 | 中文字幕av在线电影 | 久久精品人人做人人综合老师 | jizz欧美性9| 久久曰视频 | 久久精品视频中文字幕 | 亚洲最新视频在线播放 | 精品久久久999 | av九九九 | 成 人 黄 色视频免费播放 | 国产美女主播精品一区二区三区 | 日日插日日干 | www..com毛片 | 视频在线观看入口黄最新永久免费国产 | 国产黄色片网站 | 爱情影院aqdy鲁丝片二区 | 成人黄色大片在线免费观看 | 国产日韩欧美在线观看 | 美女网站视频久久 | 色综合天天综合 | 中文字幕资源网 | 免费网址在线播放 | 欧美ⅹxxxxxx | 最近免费中文视频 | www.久久色 | av电影 一区二区 | 久草久热 | 麻豆国产网站入口 | 亚洲一区二区三区91 | 在线视频手机国产 | av成人在线网站 | 9ⅰ精品久久久久久久久中文字幕 | 亚洲国产人午在线一二区 | 97免费公开视频 | 中文字幕文字幕一区二区 | 在线观看亚洲视频 | 国产麻豆精品免费视频 | 亚洲成人资源 | 亚洲精品日韩一区二区电影 | 日韩啪啪小视频 | 99精品欧美一区二区三区 | 国产一级二级av | 中文永久免费观看 | 婷婷激情综合 | 日韩亚洲国产精品 | 亚洲免费视频观看 | 毛片网站在线看 | 91精品国自产在线观看欧美 | 国内成人精品视频 | 91丨九色丨首页 | 精品日韩在线一区 | 久久这里只有精品首页 | 成人污视频在线观看 | 激情婷婷在线观看 | 在线看日韩 | 免费在线观看的av网站 | 日韩丝袜在线 | 久久久亚洲电影 | 国产中文字幕在线免费观看 | 国产成人精品在线观看 | 国产精品美女999 | 久久精品国亚洲 | 最新日本中文字幕 | 97超碰精品 | 国产在线观看中文字幕 | 在线观看第一页 | 91在线精品观看 | 中文字幕视频一区 | 久久精品视频免费 | 精品国产一区二区三区久久久久久 | 中文字幕亚洲情99在线 | 国产精品久久一 | 欧美国产高清 | av在线看网站 | 国产亚洲精品电影 | 亚洲码国产日韩欧美高潮在线播放 | 黄色免费大全 | 国产一级精品绿帽视频 | 国产精品系列在线观看 | 国内精品久久久久影院优 | 欧美色图狠狠干 | 日韩午夜小视频 | 人人干97 | 日韩免费一二三区 | 成人av在线一区二区 | av电影免费在线看 | 欧美成天堂网地址 | 成人黄色电影在线观看 | 丝袜美腿在线播放 | 精品福利在线视频 | 精品国产欧美 | 伊人手机在线 | 国产精品igao视频网网址 | 日本久久久久久久久久 | 欧美日韩一区二区久久 | 亚洲国产日韩一区 | 最新av电影网址 | 精品国产一区二区久久 | 国产精品黑丝在线观看 | 麻豆国产网站 | 激情视频在线观看网址 | 最近中文字幕大全中文字幕免费 | 亚洲精品99 | 亚洲九九 | 不卡的一区二区三区 | 一区二区精品在线观看 | 嫩嫩影院理论片 | 国产成人久久精品亚洲 | 色大片免费看 | 五月综合网站 | 国产专区在线看 | 色婷婷综合视频在线观看 | 日韩视频精品在线 | 日韩黄色免费 | 中文字幕观看在线 | 精品在线一区二区 | 久久久久五月 | 97人人添人澡人人爽超碰动图 | 亚洲 中文字幕av | 波多野结衣资源 | 色综合久久88 | 9999精品 | 国产一级二级视频 | 亚洲精品综合久久 | 激情久久网 | 久久99热这里只有精品 | 国产91精品欧美 | 精品国产免费av | www.久久久| 精品国产99 | 精品91久久久久 | 国产视频久 | 久久精品99国产精品酒店日本 | 四虎在线免费观看 | 国产一级一片免费播放放 | 日韩在线三区 | 91中文在线视频 | 精品国产午夜 | 在线观看深夜视频 | 美女久久一区 | 亚洲精品在线观看免费 | 国产精品美女久久久免费 | 99精品国产一区二区三区麻豆 | 久久这里有 | 美女在线免费观看视频 | 丁香婷婷激情网 | 色婷婷一区| 日韩欧美亚洲 | 欧美激情精品久久久久久变态 | 91网免费看| 97精产国品一二三产区在线 | 欧美日韩中文另类 | 国产精成人品免费观看 | 亚洲欧洲精品一区 | 精品在线免费视频 | 在线观看视频三级 | av成人在线观看 | 国产九九精品视频 | 亚洲免费视频在线观看 | 中文字幕在线成人 | 日韩精品在线视频免费观看 | 综合久久久久久久久 | 国产婷婷色 | 日三级在线| 午夜国产在线观看 | 激情图片qvod| 99视频在线精品国自产拍免费观看 | 中文字幕视频观看 |