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

原來你是這樣的 IO 模型

開發(fā) 前端
在網(wǎng)絡(luò)通信中,客戶端和服務(wù)端通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換,連接的任意一端都可稱為一個 Socket。

在學(xué)習(xí) Netty 框架前有一個話題是無法繞過的,就是:網(wǎng)絡(luò)編程 IO 模型,聽見 IO 模型有些同學(xué)就開始背八股文了,Java 常見 IO 模型有:

  • 同步阻塞 BIO
  • 同步非阻塞 NIO
  • 異步非阻塞 AIO

今天跟大家一起重溫下這些知識點。

Socket 網(wǎng)絡(luò)編程

網(wǎng)絡(luò)編程中有一個重要的概念就是:Socket,我們簡單了解一下。

在網(wǎng)絡(luò)通信中,客戶端和服務(wù)端通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換,連接的任意一端都可稱為一個 Socket。

Talk is cheap, show me the diagram,Socket 網(wǎng)絡(luò)通信基本過程如下圖所示:

總結(jié)一下流程,可以簡單描述為這四步:

(1)服務(wù)端啟動,監(jiān)聽指定端口,等待客戶端連接;

(2)客戶端嘗試與服務(wù)端連接,建立可信數(shù)據(jù)傳輸通道;

(3)客戶端與服務(wù)端進行數(shù)據(jù)交換;

(4)客戶端或者服務(wù)端斷開連接,終止通信;

了解了基本流程,有些小伙伴可能對 Socket 這玩意很感興趣了,Socket 到底是什么東西呢?Socket 中文翻譯過來就是套接字,是網(wǎng)絡(luò)通信對象的抽象表達(dá),聽起來還是很模糊,從編碼者視角來看,本質(zhì)上就是一套編程接口,是對復(fù)雜的 TCP/IP 協(xié)議進行封裝供上層應(yīng)用使用,這樣總明白了吧。

那 Socket 對象一般包括什么東西呢?一般包括五種信息:連接使用的協(xié)議、本地主機的IP地址、本地進程的協(xié)議端口、遠(yuǎn)端主機的IP地址、遠(yuǎn)端進程的協(xié)議端口。從這里可以看到 Socket 包含的信息非常豐富,也就是說拿到一個 Socket 對象就相當(dāng)于知己知彼了。

傳統(tǒng) BIO 模式

上面小節(jié)從理論角度講解了什么是Socket,現(xiàn)在我們回到開發(fā)語言實現(xiàn)層面上來,以 Java 為例,Java 語言從 1.0 版本就已經(jīng)封裝了 Socket 相關(guān)的接口供開發(fā)者使用,對這部分代碼感興趣的小伙伴可以出門向左拐,在java.net 包下面查看源碼。

我們嘗試用一個 demo 來演示一下傳統(tǒng)的網(wǎng)絡(luò)編程:

服務(wù)端代碼:

public static void main(String[] args) throws IOException {
// 創(chuàng)建一個ServerSocket,監(jiān)聽端口8888
ServerSocket ss = new ServerSocket(8888);

// 循環(huán)方式監(jiān)聽客戶端的請求
while (true) {
// 這里一直會阻塞,直到客戶端連接上
Socket socket = ss.accept();

// 輸入流用于接收消息
InputStream inputStream = socket.getInputStream();
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);

// 輸出流用于回復(fù)消息
OutputStream outputStream = socket.getOutputStream();
final PrintStream printStream = new PrintStream(outputStream);

// 循環(huán)接收并回復(fù)客戶端發(fā)送的消息
byte[] bytes = new byte[1024];
int len;
while ((len = bufferedInputStream.read(bytes)) != -1) {
printStream.print("服務(wù)端收到:" + new String(bytes, 0, len));
}
}
}

效果演示:

服務(wù)端運行起來后,使用 telnet 命令來模擬客戶端發(fā)送消息:

telnet 127.0.0.1 8888

客戶端每發(fā)送一條消息,服務(wù)端都會回復(fù),演示效果如下:

仔細(xì)想一下,上面的代碼可能會有問題,如果前面一個客戶端一直不斷開,服務(wù)端就不能處理其他客戶端的消息了,也就是說程序不具備并發(fā)的能力。

我們稍加改造一下,將前面的處理邏輯代碼全部抽取到一個新的handle()方法, 每當(dāng)有客戶端連接上就新開一個線程處理:

public static void main(String[] args) throws IOException {
// 創(chuàng)建一個ServerSocket,監(jiān)聽端口8888
ServerSocket ss = new ServerSocket(8888);

// 循環(huán)方式監(jiān)聽客戶端的請求
while (true) {
// 這里一直會阻塞,直到客戶端連接上
Socket socket = ss.accept();
// 啟動一個新的線程處理
new Thread(() -> handle(socket)).start();
}
}

這里為了演示方便直接新起了一個線程,當(dāng)然更好的辦法是用線程池,但是也解決不了根本性問題。

看了兩段代碼,先簡單總結(jié)一下 BIO 模式的劣勢:

  • 如果 BIO 使用單線程接收連接,則會阻塞其他連接,效率較低。
  • 如果使用多線程,雖然減弱了單線程帶來的影響,但當(dāng)有大并發(fā)進來時,會導(dǎo)致服務(wù)器線程太多,壓力太大而崩潰。
  • 就算使用線程池,也只能同時允許有限個數(shù)的線程進行連接,如果并發(fā)量遠(yuǎn)大于線程池設(shè)置的數(shù)量,還是與單線程無異。
  • IO 代碼里 read 操作是阻塞操作,如果連接不做數(shù)據(jù)讀寫操作會導(dǎo)致線程阻塞,就是說只占用連接,不發(fā)送數(shù)據(jù),則會浪費資源。比如線程池中 500個連接,只有 100 個是頻繁讀寫的連接,其他占著茅坑不拉屎,浪費資源!
  • 另外多線程也會有線程切換帶來的消耗。

綜上所述,BIO 模式不能滿足大并發(fā)業(yè)務(wù)場景,僅適用于連接數(shù)目比較小且固定的架構(gòu)。

同步阻塞 BIO 模式

根據(jù)上面的例子我們再畫圖抽象一下 BIO 網(wǎng)絡(luò)編程場景:

傳統(tǒng) BIO 的特點是只要來了一個新客戶端連接,服務(wù)端就會開辟一個線程處理客戶端請求,但是客戶端連接后并不是一直都對服務(wù)端進行 IO 操作,這樣會導(dǎo)致服務(wù)端阻塞,一直占用著線程資源,造成很多非要的開銷。

為了解決這個問題,Java 引入了 NIO,我們接著往下看。

NIO

在 Java 1.4 版本之前 BIO 是開發(fā)者唯一的選擇,1.4 版本開始引入了 NIO 框架。

NIO 的 N 有兩層含義,一層是:New IO,另一層是 Non Blocking IO。

「New」是相對于傳統(tǒng) BIO 來說的,在當(dāng)時確實挺新的;Non Blocking IO 又被稱為:同步非阻塞 IO,同步非阻塞體現(xiàn)在:

  • 同步:調(diào)用的結(jié)果會在本次調(diào)用后返回,不存在異步線程回調(diào)之類的。
  • 非阻塞:表現(xiàn)為線程不會一直在等待,把連接加入集合后,線程會一直輪詢集合中的連接,有則處理,無則繼續(xù)接受請求。

NIO 三大基礎(chǔ)組件

學(xué)習(xí) NIO必須得知道下面這三個基礎(chǔ)組件:

(1)Buffer(緩沖區(qū))

IO 是面向流(字節(jié)流或者字符流)的,而 NIO 是面向塊的,塊指的是 Buffer 緩沖區(qū)。面向塊的方式一次性可以獲取或者寫入一整塊數(shù)據(jù),而不需要一個字節(jié)一個字節(jié)的從流中讀取,這樣處理數(shù)據(jù)的速度會比流方式更快。

Buffer 緩沖區(qū)的底層實現(xiàn)是數(shù)組,根據(jù)數(shù)組類型可以細(xì)分為:ByteBuffe、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBuffer、ShortBuffer等。

(2)Channel(通道)

Channel 翻譯成中文是通道的意思,作用類似于 IO 中的 Stream 流。但是 Channel 和 Stream 不同之處在于 Channel 是雙向的,Stream 只是在一個方向移動,而且 Channel 可以用于讀、寫或者同時用于讀寫。

常見 Channel 通道類型:

  • FileChannel 用于文件操作場景;
  • ServerSocketChannel 和 SocketChannel 主要用于 TCP 網(wǎng)絡(luò)通信 IO,這是本文的重點;
  • DatagramChannel: 從 UDP 網(wǎng)絡(luò)中讀取或者寫入數(shù)據(jù)。

Channel 與 Buffer 之間的關(guān)系:

每個 Channel 對應(yīng)一個 Buffer 緩沖區(qū),永遠(yuǎn)無法將數(shù)據(jù)直接寫入到Channel或者從Channel中讀取數(shù)據(jù)。需要通過Buffer與Channel交互。

(3)Selector(多路復(fù)用器)

NIO 服務(wù)端的實現(xiàn)模式是把多個連接(請求)放入集合中,只用一個線程可以處理多個請求(連接),也就是多路復(fù)用,Linux 環(huán)境下多路復(fù)用底層主要用的是內(nèi)核函數(shù)(select,poll)來實現(xiàn)的,為了提升效率,Java 1.5 版本開始使用 epoll。

關(guān)于 select、poll、epoll 之間的對比,感興趣的小伙伴可以自行上網(wǎng)查詢。

在 NIO 中多路復(fù)用器我們稱之為:Selector,Channel 會注冊到 Selector 上,由 Selector 根據(jù) Channel 讀寫事件的發(fā)生將其交由某個空閑的線程處理。

Buffer、Channel、Selector 這三個組件的之間的關(guān)系可以用下面的圖來描述:

基本的工作流程如下:

(1)首先將 Channel 注冊到 Selector 中;

(2)初始化 Selector,調(diào)用 select() 方法,select 方法會阻塞直到感興趣的事件來臨;

(3)當(dāng)某個 Channel 有連接或者讀寫事件時,該 Channel 就會處于就緒狀態(tài);

(4)Selector 開始輪詢所有處于就緒狀態(tài)的SelectionKey,通過 SelectionKey 可以獲取對應(yīng)的Channel 集合;

NIO 比 BIO 好用在哪?

NIO 相對于 BIO 最大的改進就是使用了多路復(fù)用技術(shù),用少量線程處理大量客戶端 IO 請求,提高了并發(fā)量并減少了資源消耗;

另外NIO 的操作時非阻塞的,比如說,單線程中從通道讀取數(shù)據(jù)到buffer,同時可以繼續(xù)做別的事情,當(dāng)數(shù)據(jù)讀取到buffer中后,線程再繼續(xù)處理數(shù)據(jù)。寫數(shù)據(jù)也是一樣的。

NIO 存在的問題

NIO這么牛了,是不是就是終極解決方案了?其實也不是,NIO 也存在很多問題。

我們來看看 NIO 有哪些問題?

(1)NIO 的 API 使用起來非常麻煩,門檻比較高,開發(fā)者需要熟練掌握:Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等類。

(2)NIO 編程涉及到 Reactor 模式,開發(fā)者需要對多線程和網(wǎng)絡(luò)編程非常熟悉才能寫出高質(zhì)量的 NIO 程序;

(3)異常場景處理麻煩,比如:客戶端斷連重連、網(wǎng)絡(luò)閃斷、拆包粘包、網(wǎng)絡(luò)擁塞等等;

(4)NIO 有 bug,不穩(wěn)定,比如:臭名昭著的 Epoll bug,會導(dǎo)致 Selector 空輪詢,最終導(dǎo)致 CPU 100%。

NIO 問題這么多,有些開發(fā)者終于不能忍了,最終 Netty 框架橫空出世。

Netty 框架到底解決了什么問題,有哪些優(yōu)秀的特性,我們下期接著聊。

責(zé)任編輯:武曉燕 來源: 愛笑的架構(gòu)師
相關(guān)推薦

2009-03-11 14:42:57

面試求職案例

2020-06-08 17:35:27

Redis集群互聯(lián)網(wǎng)

2021-08-17 07:00:00

雙重檢查鎖Nacos

2022-12-14 07:32:40

InnoDBMySQL引擎

2022-01-12 19:59:19

Netty 核心啟動

2018-12-05 08:39:28

IOTITOT

2022-05-10 10:19:04

AI深度學(xué)習(xí)模型

2021-11-10 09:45:06

Lambda表達(dá)式語言

2024-12-17 12:00:00

C++對象模型

2023-05-08 07:52:29

JSXReactHooks

2016-12-02 20:13:38

2018-04-02 15:13:21

網(wǎng)絡(luò)

2023-02-15 08:17:38

2017-01-05 15:07:33

2024-04-30 08:22:51

Figma圖形編輯變換矩陣

2025-02-17 09:22:16

MySQLSQL語句

2024-02-06 09:30:25

Figma矩形矩形物理屬性

2017-01-16 13:34:21

2022-05-05 08:55:12

工業(yè)物聯(lián)網(wǎng)IIoT

2023-05-22 15:58:11

點贊
收藏

51CTO技術(shù)棧公眾號

成a人片国产精品| 红杏成人性视频免费看| 国产精品久久久久久久久快鸭 | av一区二区三区四区| 日本精品免费一区二区三区| 羞羞在线观看视频| 9l视频自拍九色9l视频成人| 色噜噜狠狠成人中文综合| 椎名由奈jux491在线播放 | 午夜精品免费观看| 91精品高清| 日韩精品视频在线| 日日干日日操日日射| 91九色在线播放| 国产欧美日韩久久| 好吊色欧美一区二区三区视频| 一区二区视频网站| 亚洲国产免费看| 久久久91精品| 一级黄色片网址| 林ゆな中文字幕一区二区| 欧美高清一级片在线| 亚洲色成人一区二区三区小说| 黄网站免费在线观看| 国产亚洲人成网站| 国产精品成人一区二区三区| 一级黄色片在线观看| 亚洲一区二区网站| 欧美日韩高清区| 欧美一级特黄高清视频| 精品在线观看入口| 精品国产免费一区二区三区四区| 免费精品99久久国产综合精品应用| 亚洲日本天堂| 精品国产精品自拍| 亚洲国产精品无码av| 国产黄大片在线观看画质优化| 国产网红主播福利一区二区| 久久精品午夜一区二区福利| 欧美性猛交 xxxx| 国产传媒日韩欧美成人| 成人激情视频在线播放| 中文字幕日产av| 日日摸夜夜添夜夜添国产精品| 91高清视频在线免费观看| 国产精品成人久久| 黄色成人91| 久久久亚洲欧洲日产国码aⅴ| 激情五月深爱五月| 日韩不卡一区| 日韩在线视频网| 顶级黑人搡bbw搡bbbb搡| 青青草国产免费一区二区下载| 日韩成人在线视频观看| 欧美肉大捧一进一出免费视频| 中文字幕av一区二区三区四区| 在线播放91灌醉迷j高跟美女 | 国产精品久久久久av蜜臀| 欧美一卡在线观看| 人妻激情偷乱视频一区二区三区| 国产一区二区视频在线看| 日韩三级视频中文字幕| 亚洲三级在线视频| 亚洲超碰在线观看| 精品国免费一区二区三区| 亚洲怡红院在线| 欧美午夜在线播放| 精品国产乱码久久久久久影片| 人妻 日韩 欧美 综合 制服| 精品国产导航| 亚洲码在线观看| 欧美丰满美乳xxⅹ高潮www| 精品久久视频| 伦理中文字幕亚洲| 国产主播在线播放| 久久久天天操| 国产精品自产拍在线观看| 一区二区三区黄| 国产不卡视频在线播放| 精品国产一区二区三区四区vr| 欧洲伦理片一区 二区 三区| 中文字幕乱码日本亚洲一区二区| 亚洲美女自拍偷拍| 国产在线xxx| 色婷婷综合久久久中文一区二区| 国产福利影院在线观看| 免费一级欧美在线大片| 亚洲精品国产suv| 欧美一区二区三区粗大| 欧美 亚欧 日韩视频在线| 97视频网站入口| 亚洲影院一区二区三区| 国产成人在线影院| 欧美一级二级三级| 99热国产在线| 日韩欧美高清在线视频| 亚洲一区二区三区四区精品| 欧美日韩一区二区三区四区不卡| 中文字幕亚洲在线| 国产无套内射又大又猛又粗又爽| 天堂蜜桃一区二区三区| 成人在线精品视频| 欧美精品a∨在线观看不卡 | 亚洲精品一区国产| 亚洲色图欧美制服丝袜另类第一页| 国产极品视频在线观看| 国产视频一区免费看| 成人免费看吃奶视频网站| 天天插天天干天天操| 国产精品久久久久久久第一福利| av高清在线免费观看| 亚洲国产91视频| 日韩精品免费在线视频| 国产性猛交普通话对白| 久久精品国产**网站演员| 精品久久sese| 免费在线国产视频| 欧美日本一区二区| 91成人在线免费视频| 亚洲经典视频在线观看| 亚洲www在线| 中国日本在线视频中文字幕| 欧美日韩国产色视频| 一级日本黄色片| 日韩精品看片| 国产精品欧美一区二区三区奶水| 日本又骚又刺激的视频在线观看| 亚洲自拍偷拍图区| 亚洲精品乱码久久久久久动漫| 精品一区电影| 欧美最猛性xxxx| 色婷婷视频在线| 一区二区欧美精品| 色欲无码人妻久久精品| 国产精品久久天天影视| 国产精品视频地址| 国产毛片在线| 欧美性生活久久| 日韩人妻无码精品综合区| 亚洲一区二区三区高清不卡| 精品综合在线| 热三久草你在线| 亚洲国产精品网站| 国产污片在线观看| www.成人在线| 岳毛多又紧做起爽| 综合伊思人在钱三区| 国产91免费看片| 国产在线观看免费| 欧美色偷偷大香| av资源在线免费观看| 精品中文字幕一区二区| 国产精品久久成人免费观看| 国产精品99久久免费| 欧美高清在线视频观看不卡| 日本高清视频网站| 狠狠色狠狠色综合日日五| 欧美性xxxx图片| 视频在线在亚洲| 亚洲精品乱码久久久久久蜜桃91| 国产乱子精品一区二区在线观看| 日韩在线观看免费高清完整版| 国产精品探花视频| 一区二区三区丝袜| 色婷婷精品久久二区二区密| 媚黑女一区二区| 亚洲一区二区在线免费观看| 国产精品日本一区二区不卡视频| 久久6免费高清热精品| 视频一区 中文字幕| 色综合久久久久综合99| 欧美乱大交做爰xxxⅹ小说| 国产一区二区福利视频| 成人性免费视频| 欧美日韩有码| 99re国产| 欧美大片免费高清观看| 久久久精品一区二区三区| 黄色成人一级片| 欧美在线观看视频在线| 黑鬼狂亚洲人videos| 99久久久免费精品国产一区二区| 老司机午夜av| 欧美视频成人| 四虎影视永久免费在线观看一区二区三区| 先锋影音一区二区| 羞羞色国产精品| 2019中文字幕在线视频| 亚洲成人精品视频| 91九色蝌蚪91por成人| 亚洲成人激情av| 91免费在线看片| av综合在线播放| 在线视频日韩欧美| 午夜亚洲精品| 日韩视频 中文字幕| 久久99国产精一区二区三区| 91免费版网站在线观看| 欧美福利在线播放| 欧美激情精品久久久久久| 国产www.大片在线| 亚洲福利视频网站| 91片黄在线观看喷潮| 欧美日韩在线影院| 我家有个日本女人| 国产精品人人做人人爽人人添| av av在线| 国产一区激情在线| 日韩福利视频在线| 99亚洲视频| 国产成人生活片| 四虎成人精品永久免费av九九| 国产一区在线免费观看| 精品视频在线播放一区二区三区 | 成人久久综合| 国产一区免费视频| 亚洲一区二区免费在线观看| 国产精品青草久久久久福利99| 亚洲精华液一区二区三区| 久久99视频精品| 麻豆视频在线| 色yeye香蕉凹凸一区二区av| 免费看男男www网站入口在线| 欧美大胆人体bbbb| 97人妻精品一区二区三区软件| 日本韩国精品在线| 特一级黄色大片| 亚洲不卡在线观看| 国产在线视频二区| 玉足女爽爽91| 欧美日韩免费一区二区| 亚洲视频1区2区| 老熟妻内射精品一区| 中文字幕在线免费不卡| 国产极品视频在线观看| 国产精品亲子伦对白| 亚洲一区二区三区日韩| 久久久综合网站| 国产精品无码久久久久久| 99re这里都是精品| 日本黄色片在线播放| 99re在线精品| 中文字幕网站在线观看| 国产日韩欧美激情| 99国产精品免费| 国产精品少妇自拍| 五月天色婷婷丁香| 综合自拍亚洲综合图不卡区| 亚洲人与黑人屁股眼交| 国产精品久久毛片a| www.av成人| 一区二区三区日韩欧美精品| 18精品爽视频在线观看| 亚洲国产成人精品视频| 97人人澡人人爽人人模亚洲| 精品久久久视频| 久久久久久无码午夜精品直播| 色婷婷久久99综合精品jk白丝| 日韩xxx视频| 欧美日韩高清一区二区不卡| 99国产在线播放| 欧美mv日韩mv国产网站app| 色婷婷av一区二区三区之e本道| 日韩精品一区二区三区第95| 蜜桃视频在线播放| 日韩在线免费高清视频| 色呦呦在线资源| 538国产精品视频一区二区| 澳门av一区二区三区| 国产在线拍偷自揄拍精品| 天堂av一区| 免费精品视频一区二区三区| 区一区二视频| 欧美一区二区三区综合| 国产日韩欧美| jizzzz日本| 国产成人三级在线观看| 90岁老太婆乱淫| 亚洲天堂福利av| 久久久久久久久久免费视频| 欧美三级中文字| 蜜桃在线一区二区| 在线看福利67194| 日韩影视在线| 国产成人啪精品视频免费网| 不卡一区视频| 免费观看成人高| 中文字幕av亚洲精品一部二部| 日日碰狠狠添天天爽超碰97| 免费观看久久久4p| 在线免费看黄色片| 中文字幕一区免费在线观看| 日本少妇全体裸体洗澡| 欧美三级日本三级少妇99| 囯产精品一品二区三区| 在线成人一区二区| 51漫画成人app入口| 国产精品永久免费视频| 欧美大片网址| dy888午夜| 美女视频黄a大片欧美| 国产国语性生话播放| 亚洲欧美另类在线| 欧美亚洲另类小说| 亚洲成在人线av| 国产高清一区二区三区视频| 国产精品jizz在线观看麻豆| 97久久亚洲| 日本不卡一区二区三区四区| 久久一区亚洲| 亚洲高清无码久久| 亚洲另类一区二区| 亚洲一区 中文字幕| 亚洲人成人99网站| 国产传媒在线观看| 97se视频在线观看| 香蕉国产精品| 三上悠亚在线一区| 国产欧美日本一区视频| 99精品视频99| 亚洲国内精品视频| 草美女在线观看| 亚洲字幕一区二区| 午夜精品毛片| 国模私拍视频在线观看| 国产欧美日韩久久| 日韩美一区二区| 亚洲欧美日韩图片| 小h片在线观看| 久久婷婷国产综合尤物精品| 日韩视频不卡| 国产精品无码专区| 婷婷六月综合网| 五月婷婷六月激情| 午夜精品理论片| 菁菁伊人国产精品| 1024av视频| 91在线观看高清| 日本午夜视频在线观看| 日韩高清有码在线| 中文字幕资源网在线观看免费| 国产自产在线视频一区| 亚洲精品乱码| 人人妻人人澡人人爽人人精品 | 欧美成人xxxxx| 91一区二区三区在线播放| 日本va欧美va国产激情| 日韩精品黄色网| 欧美艳星kaydenkross| 日本一区免费看| 日韩成人午夜电影| 特级西西人体高清大胆| 欧美二区在线观看| 尤物在线网址| 国产视频精品网| 久久资源在线| 日韩一区二区三区四区视频| 91精品啪在线观看国产60岁| av网站在线看| 精品一区二区三区国产| 美女诱惑一区| 黄色一级大片在线免费观看| 日韩欧美中文字幕一区| 草草在线观看| 偷拍视频一区二区| 国产真实乱子伦精品视频| 久久久久久久国产精品毛片| 亚洲国产精品久久精品怡红院| 自由日本语热亚洲人| 影音先锋亚洲视频| 成人一区二区三区视频| 亚洲av中文无码乱人伦在线视色| 一区二区在线视频播放| 免费精品一区| 国产自偷自偷免费一区 | 91亚洲国产成人精品一区二三| 中文字字幕在线中文| 中文字幕在线精品| 午夜电影一区| 亚洲成熟丰满熟妇高潮xxxxx| 亚洲欧洲一区二区三区| 免费观看的毛片| 国产精品免费视频xxxx| 欧美三级小说| 亚洲精品91在线| 精品久久久久久久久久久院品网| 欧美gay视频| 成人在线免费观看网址| 久久影院视频免费| 国产男男gay体育生白袜| 欧美在线视频网| 亚洲精品一区二区在线看| 亚洲黄色免费在线观看| 欧美一区二区精美| 中文在线免费视频| 日本一二三区视频在线| 久久精品欧美一区二区三区麻豆| 精品人妻一区二区三区三区四区 | www国产精品内射老熟女| 中文字幕一区二区三区不卡在线|