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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux socket recv函数如何判断收完一包_linux 下经典 IO 复用模型 epoll 的使用

發布時間:2023/12/19 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux socket recv函数如何判断收完一包_linux 下经典 IO 复用模型 epoll 的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 概述

epoll?是?linux?內核為處理大批量文件描述符而對?poll?進行的改進版本,是?linux?下多路復用?IO?接口?select/poll?的增強版本,顯著提高了程序在大量并發連接中只有少量活躍的情況下的CPU利用率。
在獲取事件時,它無需遍歷整個被偵聽描述符集,只要遍歷被內核?IO?事件異步喚醒而加入?ready?隊列的描述符集合就行了。
epoll?除了提供?select/poll?所提供的?IO?事件的電平觸發,還提供了邊沿觸發,,這樣做可以使得用戶空間程序有可能緩存?IO?狀態,減少?epoll_wait?或?epoll_pwait?的調用,提高程序效率。

2. 實現原理

當某個進程調用?epoll_create?函數創建?epoll?專用的文件描述符時,Linux?內核會創建一個?eventpoll?結構體變量:

struct eventpoll
{
...
struct rb_root rbr; // 紅黑樹根節點,存儲 epoll 中所有事件
struct list_head rdllist; // 雙向鏈表,保存需要 epoll_wait 返回的事件
...
}

每一個?epoll?對象都擁有一個獨立的?eventpoll?結構體,這個結構體會在內核空間中分配獨立的內存,用于存儲使用?epoll_ctl?函數向?epoll?對象中添加進來的事件。
每一個事件都會掛到紅黑樹?rbr?上,這樣重復添加的時間就可以通過紅黑樹結構快速識別并避免加入,保證了?epoll_ctl?函數的效率。

所有添加到?epoll?中的時間都會與設備驅動程序建立回調關系,一旦某個事件發生,則設備驅動程序會調用相應的回調函數,這個回調函數就是?ep_poll_callback,它會把相應事件放到?rdllist?這個雙向鏈表中。
這個雙向鏈表的元素是?epitem?結構體類型的:

struct epitem
{
// 紅黑樹節點
struct rb_node rbn;
// 雙向鏈表節點
struct list_head rdllink;
// 事件 fd 等信息
struct epoll_filefd ffd;
// 指向所屬的 eventpoll 對象的指針
struct eventpoll *ep;
// 期待時間類型
struct epoll_event event;
}

3. 函數原型(全部定義于?sys/epoll.h?中)

3.1. epoll?的創建

int epoll_create(int size);

創建一個?epoll?專用的文件描述符,調用成功返回描述符,否則返回?-1。
需要注意的是,該描述符使用完畢后同樣需要?close?操作。

size?參數用來告訴內核監聽的數目,自從?linux?2.6.8?開始,size?參數被忽略,但是依然必須大于?0。

3.2. 事件注冊函數

int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);

調用成功返回0,否則返回?-1。

參數說明

  • epfd?—?epoll_create?返回的?epoll?專用的文件描述符

  • op?—?表示參數,有以下取值:

epoll_ctl?動作參數取值

取值動作
EPOLL_CTL_ADD注冊新的?fd?到?epfd?中
EPOLL_CTL_MOD修改已經注冊的?fd?的監聽事件
EPOLL_CTL_DEL從?epfd?中刪除一個?fd
  • fd?—?需要監聽的fd

  • event?—?監聽事件類型

struct epoll_event
{
__uint32_t events;
epoll_data_t data;
}

可選以下幾個宏的組合:

epoll_ctl?event?參數可選宏

宏說明
EPOLLIN文件描述符可讀(或對端?socket?正常關閉)
EPOLLOUT文件描述符可寫
EPOLLPRI文件描述符有帶外數據可讀
EPOLLERR文件描述符發生錯誤
EPOLLHUP文件描述符被掛斷
EPOLLET將?epoll?設為邊緣觸發
EPOLLONESHOT只監聽一次

3.3. 等待事件產生

int epoll_wait(int epfd, struct epoll_event *events,
int maxevents, int timeout);

返回需要處理的事件數目,如返回?0?表示超時,調用失敗返回?-1。

類似于?select?函數。

參數說明

  • epfd?—?epoll?專用文件描述符

  • events?—?事件集合

  • maxevents?—?每次能處理的最大事件數,不能大于?epoll_create?的?size?參數

  • timeout?—?超時時間,以毫秒為單位,0?表示立即返回,-1?表示永遠阻塞

4. 優勢

4.1. 支持同時打開大量的文件描述符

select?函數對一個進程所打開的FD是有一定限制的,由FD_SETSIZE設置,默認值是1024,這對于一個服務器來說顯然是太少了,雖然修改這個宏之后重新編譯系統可以解決這個問題,但是隨著?FD_SETSIZE?值的上升,select?函數的性能會顯著下降。
傳統?Apache?服務器對此的解決方案是使用多進程的方式來打開大于?FD_SETSIEZE?的文件描述符,但是開辟進程的效率和資源都有一定的消耗,同時進程間數據同步也遠沒有線程間數據同步來的高效。
epoll?能夠打開的?FD?與系統能夠持有的?FD?數目是一致的,只受限于系統的內存。

4.2. IO效率不隨?FD?數目增加而線性下降

傳統的?select、poll?具有一個致命弱點,每當有數據可讀或可寫,都需要對整個描述符集合進行掃描,這樣如果文件描述符集合很大,而同時又有大量空閑連接,則效率下降會非常明顯。

4.3. 使用mmap加速內核與用戶空間的消息傳遞

epoll是通過內核與用戶空間mmap同一塊內存實現的,這樣就可以避免從內核空間通知用戶空間的時候不必要的拷貝了。

4.4. 內核微調

內核的?TCP/IP?協議棧使用內存池管理?sk_buff?結構,通過在運行時改變?/proc/sys/net/core/hot_list_length?的值,即可動態調整整個內存池的大小,如?listen?函數所指示的3次握手數據包隊列長度也可以根據平臺內存動態調整。

5. 邊緣觸發與水平觸發

5.1. 邊緣觸發(Edge?Triggered)

邊緣觸發模式是高速工作方式,只支持?no-block?socket。
在這種模式下,當描述符從未就緒變為就緒時,內核通過?epoll?告知調用者。
然后它會假設你知道文件描述符已經就緒,并且不會再為那個文件描述符發送更多的就緒通知,直到你做了某些操作導致那個文件描述符不再為就緒狀態了(比如,你在發送,接收或者接收請求,或者發送接收的數據少于一定量時導致了一個EWOULDBLOCK?錯誤)
需要注意的是,如果一直不對這個?fd?作?IO?操作(從而導致它再次變成未就緒),內核不會發送更多的通知(only?once),不過在TCP協議中,ET?模式的加速效用仍需要更多的?benchmark?確認(這句話不理解)。
由于邊緣觸發模式下,epoll?產生一個EPOLLIN事件后,不會再次發出更多的通知,所以調用者需要判斷?recv?返回的大小是否等于請求的大小,如果?recv?返回的大小小于請求的大小,則說明有可能數據仍然存在于緩沖區中,需要再次進行讀取。

while(rs)
{
buflen = recv(activeevents.data.fd, buf, sizeof(buf), 0);
if(buflen < 0)
{
// 由于是非阻塞的模式,所以當errno為EAGAIN時,表示當前緩沖區已無數據可讀
// 在這里就當作是該次事件已處理處.
if(errno == EAGAIN)
break;
else
return;
}
else if(buflen == 0)
{
// 這里表示對端的socket已正常關閉.
}
if(buflen == sizeof(buf)
rs = 1; // 需要再次讀取
else
rs = 0;
}

5.2. 水平觸發(Level?Triggered)

epoll?的默認工作模式。
在水平觸發模式下,epoll?相當于一個較快的?poll。

6. 示例

6.1. SERVER

/**
* date: 2015-01-02
* file: main.c
* author: 龍泉居士
*/

#include "function/function.h"

int main(int argc, char **argv)
{
int listenfd, connfd, epollfd, nfds, n, curfds, accept_count = 0;
struct sockaddr_in cliaddr;
socklen_t socklen = sizeof(struct sockaddr_in);
struct epoll_event ev;
struct epoll_event events[MAXEPOLLSIZE];
char buf[MAXLINE];

listenfd = get_listenfd();
epollfd = get_epollfd(listenfd, &ev);

curfds = 1;
printf("epollserver startup, port %d, max connection is %d, backlog is %d\n",
SERV_PORT, MAXEPOLLSIZE, LISTENQ);

while (1)
{
/* 等待有事件發生 */
nfds = epoll_wait(epollfd, events, curfds, -1);
if (nfds == -1)
{
perror("epoll_wait");
continue;
}

/* 處理所有事件 */
for (n = 0; n < nfds; ++n)
{
if (events[n].data.fd == listenfd)
{
connfd = accept(listenfd, (struct sockaddr *)&cliaddr, &socklen);
if (connfd < 0)
{
perror("accept");
continue;
}

sprintf(buf, "accept form %s:%d\n",
inet_ntoa(cliaddr.sin_addr),
cliaddr.sin_port);

printf("%d:%s", ++accept_count, buf);

if (curfds >= MAXEPOLLSIZE)
{
fprintf(stderr, "too many connection, more than %d\n",
MAXEPOLLSIZE);
close(connfd);
continue;
}

if (setnonblocking(connfd) < 0) {
perror("setnonblocking error");
return -1;
}

ev.events = EPOLLIN | EPOLLET;
ev.data.fd = connfd;
if (epoll_ctl(epollfd, EPOLL_CTL_ADD, connfd, &ev) < 0)
{
fprintf(stderr, "add socket '%d' to epoll failed: %s\n",
connfd,
strerror(errno));
return -1;
}

curfds++;
continue;
}

// 處理客戶端請求
if (handle(events[n].data.fd) < 0)
{
epoll_ctl(epollfd, EPOLL_CTL_DEL, events[n].data.fd,&ev);
curfds--;
}
}
}

close(listenfd);
return 0;
}/**
* date: 2015-01-02
* file: function.h
* author: 龍泉居士
*/
#ifndef EPOLLSERV_FUNCTION_20150102
#define EPOLLSERV_FUNCTION_20150102

#include
#include /* basic system data types */
#include /* basic socket definitions */
#include /* sockaddr_in{} and other Internet defns */
#include /* inet(3) functions */
#include /* epoll function */
#include /* nonblocking */
#include /* setrlimit */
#include
#include
#include
#include
#define LISTENQ 1024
#define MAXLINE 10240
#define SERV_PORT 8888
#define MAXEPOLLSIZE 10000 int handle(int); int setnonblocking(int); int get_listenfd(); int get_epollfd(int, struct epoll_event *);
#endif/**
* date: 2015-01-02
* file: function.c
* author: 龍泉居士
*/
#include "function.h"

int setnonblocking(int sockfd)
{
if (fcntl(sockfd, F_SETFL, fcntl(sockfd, F_GETFD, 0)|O_NONBLOCK) < 0)
{
perror("fcntl");
exit(-1);
}
return 0;
}

int get_listenfd()
{
int opt = 1;
int listenfd;
struct rlimit rt;
struct sockaddr_in servaddr;

/* 設置每個進程允許打開的最大文件數 */
rt.rlim_max = rt.rlim_cur = MAXEPOLLSIZE;
if (setrlimit(RLIMIT_NOFILE, &rt) == -1)
{
perror("setrlimit");
exit(-1);
}

memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl (INADDR_ANY);
servaddr.sin_port = htons (SERV_PORT);

listenfd = socket(AF_INET, SOCK_STREAM, 0);
if (listenfd < 0)
{
perror("can't create socket file");
exit(-1);
}

// 允許綁定已經被使用的端口
setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));

// 設置連接為非阻塞狀態
if (setnonblocking(listenfd) < 0)
{
perror("setnonblock");
exit(-1);
}

if (bind(listenfd, (struct sockaddr *) &servaddr, sizeof(struct sockaddr))
< 0)
{
perror("bind");
exit(-1);
}

if (listen(listenfd, LISTENQ) < 0)
{
perror("listen");
exit(-1);
}

return listenfd;
}

int get_epollfd(int listenfd, struct epoll_event *pev)
{
/* 創建 epoll 句柄,把監聽 socket 加入到 epoll 集合里 */
int epollfd = epoll_create(MAXEPOLLSIZE);
pev->events = EPOLLIN | EPOLLET;
pev->data.fd = listenfd;
if (epoll_ctl(epollfd, EPOLL_CTL_ADD, listenfd, pev) < 0)
{
perror("epoll_ctl");
exit(-1);
}
return epollfd;
}

int handle(int connfd) {
int nread;
char buf[MAXLINE];
nread = read(connfd, buf, MAXLINE);//讀取客戶端socket流
if (nread == 0) {
printf("client close the connection\n");
close(connfd);
return -1;
}
if (nread < 0) {
perror("read error");
close(connfd);
return -1;
}
write(connfd, buf, nread);//響應客戶端
return 0;
}

6.2. CLIENT

/**
* date: 2015-01-02
* file: main.c
* author: 龍泉居士
*/
#include "function/function.h"

int main(int argc, char **argv)
{
int sockfd = connect_serv();

printf("welcome to echoclient\n");

handle(sockfd); /* do it all */
close(sockfd);

printf("exit\n");
return 0;
}/**
* date: 2015-01-02
* file: function.h
* author: 龍泉居士
*/
#ifndef EPOLLCLI_FUNCTION_20150102
#define EPOLLCLI_FUNCTION_20150102

#include /*gethostbyname function */
#include
#include
#include
#include
#include
#include /* inet(3) functions */
#include /* basic system data types */
#include /* basic socket definitions */
#include /* sockaddr_in{} and other Internet defns */
#define MAXLINE 1024
#define IPADDR "127.0.0.1"
#define SERV_PORT 8888 void handle(int connfd); int connect_serv();
#endif/**
* date: 2015-01-02
* file: function.c
* author: 龍泉居士
*/
#include "function.h"

void handle(int sockfd)
{
char sendline[MAXLINE], recvline[MAXLINE];
int n;
for (;;) {
if (fgets(sendline, MAXLINE, stdin) == NULL)
{
break;//read eof
}

n = write(sockfd, sendline, strlen(sendline));
n = read(sockfd, recvline, MAXLINE);
if (n == 0) {
printf("echoclient: server terminated prematurely\n");
break;
}
write(STDOUT_FILENO, recvline, n);
}
}

int connect_serv()
{
int sockfd;
struct sockaddr_in servaddr;

if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) <= 0)
{
perror ("socket error");
exit(-1);
}

memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(SERV_PORT);
inet_pton(AF_INET, IPADDR, &servaddr.sin_addr.s_addr);

if (connect (sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)))
{
perror ("connect error");
exit(-1);
}

return sockfd;
}

總結

以上是生活随笔為你收集整理的linux socket recv函数如何判断收完一包_linux 下经典 IO 复用模型 epoll 的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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

日韩精品播放 | 狠狠干五月天 | 久久婷五月| 日韩色爱| 亚洲综合日韩在线 | 粉嫩av一区二区三区免费 | 日日夜夜精品免费观看 | 成人在线播放视频 | 国产大陆亚洲精品国产 | 国产精品美女毛片真酒店 | 夜夜高潮夜夜爽国产伦精品 | 丰满少妇麻豆av | 91日韩精品 | 国产一级片免费视频 | 国产色网站 | 色偷偷中文字幕 | 欧美日韩国产一区二区在线观看 | 亚洲美女免费视频 | 一本色道久久综合亚洲二区三区 | 久久中文网 | 91视频 - 114av| 国产一区免费视频 | 国产精品久久久久久久久软件 | 91.麻豆视频 | 能在线观看的日韩av | 亚洲另类视频 | av一级网站 | 久久免费视频一区 | 色婷婷狠狠五月综合天色拍 | 天堂久色 | 国产成人精品av久久 | 成人sm另类专区 | 18国产精品白浆在线观看免费 | 999电影免费在线观看2020 | 成年人在线观看视频免费 | 国产一区二区在线免费观看 | 在线观看黄网 | 亚洲高清国产视频 | 日本久久综合视频 | 亚洲日本激情 | 久久av中文字幕片 | 国产精品大片在线观看 | 伊人网综合在线观看 | 黄网站app在线观看免费视频 | 在线天堂亚洲 | 国产一区在线视频观看 | 欧美精品久久久久久久久久久 | 久久国产精品影视 | 久久高清免费 | 国产精品久久精品 | 久久网页 | 国产最新在线观看 | 亚洲欧美日韩国产精品一区午夜 | 国产黄色大片 | 国产高清黄 | 91超碰在线播放 | 97免费在线观看视频 | 天天干天天搞天天射 | 在线综合 亚洲 欧美在线视频 | 99热在线看 | 亚洲一二视频 | 久久精品a| 国产91精品在线播放 | 日韩一片| 91系列在线 | 国产精品麻豆三级一区视频 | 国产999在线观看 | 五月婷婷丁香在线观看 | 黄污网站在线 | 9ⅰ精品久久久久久久久中文字幕 | 久久久99精品免费观看乱色 | 欧美日在线观看 | 免费精品在线 | 999成人| 国产小视频你懂的在线 | 91精品国自产在线偷拍蜜桃 | 天天色天天综合网 | 中文字幕视频在线播放 | 天天综合网入口 | av资源免费在线观看 | 精品一区二区三区在线播放 | 亚洲高清视频一区二区三区 | 久久黄页| 婷婷av网站 | 精品国产乱码久久 | 日韩高清成人在线 | 美女网站色 | 在线观看黄 | 色婷婷激情电影 | 欧美另类重口 | 激情亚洲综合在线 | 国产成a人亚洲精v品在线观看 | 日韩精品极品视频 | 天天干.com| 色婷婷免费视频 | 精品美女久久久久久免费 | 国产精品高清一区二区三区 | 天天干天天想 | 日韩日韩日韩日韩 | 婷婷在线网 | 中文字幕高清有码 | 久久8| 蜜臀久久99精品久久久无需会员 | 国产美女搞久久 | 国产一区二区在线观看免费 | 91毛片在线观看 | 亚洲成a人片在线观看网站口工 | 精品视频免费在线 | 国产精品久久久久av | 在线观看91精品国产网站 | 狠狠干夜夜爽 | 亚洲永久精品国产 | 久久精品—区二区三区 | 日韩av成人免费看 | 色在线网站 | 黄色大片国产 | 久草精品免费 | 日韩在线视频一区二区三区 | 久久精品牌麻豆国产大山 | 色婷婷免费 | 国内成人精品视频 | 日韩免费在线网站 | 天堂va欧美va亚洲va老司机 | 97涩涩视频 | 五月激情综合婷婷 | 亚洲另类视频在线观看 | 在线国产黄色 | 999久久久免费精品国产 | 免费在线播放av电影 | 综合网久久 | 亚洲成人黄色在线 | 国产精品电影一区 | 国产精品欧美久久久久无广告 | 久久精品一区二区三区视频 | 亚洲精品在线播放视频 | 激情丁香久久 | 伊人久久精品久久亚洲一区 | 狠狠久久综合 | 国产在线视频资源 | 成人网在线免费视频 | 国产精品久久99综合免费观看尤物 | 亚洲综合色婷婷 | 在线韩国电影免费观影完整版 | 久久精品视频在线观看 | 狠狠操狠狠干2017 | 欧美一区二区三区激情视频 | 欧美久久久久久久久中文字幕 | 精品一区二区视频 | 福利电影一区二区 | 久久免费试看 | 久草在线手机观看 | 日韩视频一区二区三区在线播放免费观看 | 国产精品福利在线 | 国产一区二区在线观看免费 | 欧美老女人xx | 又色又爽的网站 | 欧美黄色特级片 | 欧美在线一二区 | 一区二区三区免费播放 | 日韩欧美精选 | 岛国片在线| 国产精品成人aaaaa网站 | 韩国av一区二区三区 | 国产黄色在线网站 | 亚洲性视频 | 天天操天天色天天射 | 免费色视频网站 | 99精品视频精品精品视频 | 久久久久国产a免费观看rela | 久久精品牌麻豆国产大山 | 久久久久草| 精品视频999 | 久草在线网址 | 日日夜夜网站 | 亚洲天天草 | 911香蕉视频 | 久久精品免费观看 | 欧美性黑人 | 亚洲精品www久久久久久 | 欧美人牲 | 最新免费av在线 | 四虎影视成人永久免费观看视频 | 国产最新精品视频 | 亚洲午夜av| 在线 视频 一区二区 | 黄色三级免费观看 | 二区中文字幕 | 久久久久在线视频 | 九九视频精品免费 | 91精品国产乱码久久桃 | 亚洲最新在线视频 | 免费观看的av网站 | 伊人狠狠色丁香婷婷综合 | 99在线免费视频观看 | 麻豆视频网址 | 国产人在线成免费视频 | 欧美精品久久久久久久久老牛影院 | 在线看污网站 | 日韩欧美高清不卡 | 手机看片 | 免费观看成人网 | 免费性网站 | 国内精品久久久久久久影视麻豆 | 国产青春久久久国产毛片 | 亚洲a在线观看 | 国产五月天婷婷 | 日韩丝袜在线观看 | 欧美一级黄色视屏 | 日韩伦理片一区二区三区 | 久久久精品国产免费观看一区二区 | 成人网中文字幕 | 国产精品一区二区av日韩在线 | 最近中文字幕mv免费高清在线 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 欧美激情h | 黄色小说免费在线观看 | 免费十分钟| 视频一区在线播放 | 国产裸体无遮挡 | 久久成人国产精品免费软件 | 成人av亚洲 | 欧美91视频 | 午夜影院一级 | 97超视频在线观看 | 国产一区二区高清不卡 | 黄色av网站在线观看免费 | 国产精品久久免费看 | 亚洲欧洲视频 | 久久9999久久免费精品国产 | 青春草视频在线播放 | 日韩av免费在线电影 | www一起操| 99超碰在线观看 | 日韩综合一区二区三区 | 日本亚洲国产 | 制服丝袜成人在线 | 免费三级网| 美女网站免费福利视频 | 亚洲国产欧美一区二区三区丁香婷 | 天天操夜夜操国产精品 | 国产精品丝袜在线 | 欧美日韩久久一区 | 在线小视频| 国产精品嫩草影院9 | 精品视频99 | 亚洲成aⅴ人片久久青草影院 | 欧美超碰在线 | 制服丝袜在线 | 亚洲精品视频在 | 黄色亚洲精品 | 亚洲精品三级 | 欧美日韩精品在线观看视频 | 免费在线观看日韩 | 特级黄色视频毛片 | 9999精品视频 | av在线亚洲天堂 | 日韩高清在线一区二区 | 黄在线免费观看 | 91禁在线观看 | 在线黄色免费 | 99成人在线视频 | 深爱激情综合网 | 91免费看黄 | 毛片激情永久免费 | 99r精品视频在线观看 | 夜夜骑日日操 | 日韩最新理论电影 | 一区二区中文字幕在线播放 | 女人18片毛片90分钟 | 久久国产精品小视频 | 欧美久久久久久久久久久久久 | 精品毛片在线 | 国产亚洲精品久 | 香蕉蜜桃视频 | 少妇做爰k8经典 | 免费看的国产视频网站 | 免费在线观看的av网站 | 欧美成年人在线观看 | 亚洲人在线7777777精品 | 久久亚洲国产精品 | 黄色大全在线观看 | 久99久中文字幕在线 | 欧美一区三区四区 | 黄色1级毛片| 97在线观看免费高清完整版在线观看 | 国产一区二区电影在线观看 | www四虎影院 | 91桃色国产在线播放 | 最近高清中文在线字幕在线观看 | 五月婷激情 | 91中文字幕 | 中文字幕高清有码 | 99久久精品国产一区二区三区 | 国产精品国产亚洲精品看不卡 | 亚洲一级国产 | 国模一二三区 | 国产精品午夜免费福利视频 | 玖玖视频精品 | 中文在线a天堂 | 一区二区三区精品在线视频 | 99re8这里有精品热视频免费 | 免费在线观看av网站 | 国产精品久久久久久久久久久久午夜 | 99视频+国产日韩欧美 | 成年人免费电影在线观看 | 日韩免费视频在线观看 | 日韩资源在线观看 | 精品国产123| 国产中文在线字幕 | 国产精品福利在线观看 | 超碰免费观看 | 99热国产在线观看 | 日日干夜夜爱 | 精品国产91亚洲一区二区三区www | 六月色婷婷 | 日本不卡一区二区 | 色综合久久88 | 去干成人网 | 热久久精品在线 | 麻豆视频免费在线播放 | 亚洲免费精品视频 | 国产高清精品在线观看 | 久久久久日本精品一区二区三区 | 在线观看视频在线观看 | 美女黄久久 | 欧美性色黄大片在线观看 | 高潮久久久久久 | 91精品视频免费 | 91亚洲精品久久久久图片蜜桃 | 中文字幕av在线播放 | 国产成人一区二区三区久久精品 | 久久午夜免费视频 | 国产精品久久99综合免费观看尤物 | 国产精品乱码在线 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 97色综合 | av免费在线播放 | 日韩视频免费在线观看 | 激情综合网在线观看 | 成人午夜久久 | 日韩成人免费在线电影 | 91视频免费看片 | 亚洲最新av在线网址 | 91精品国产99久久久久 | 国产精品毛片一区二区三区 | 久草国产在线 | 国内久久精品 | 一本色道久久精品 | 亚洲三级网 | 久久久免费国产 | 国产高清绿奴videos | av中文字幕剧情 | 久久福利电影 | 成人免费在线看片 | 色国产精品| 在线国产激情视频 | 视频在线精品 | 在线99视频| 在线成人短视频 | 日韩久久片 | 嫩模bbw搡bbbb搡bbbb| 国产精品美女久久久久久2018 | 国产女v资源在线观看 | 国产精品专区在线 | 99精品国产高清在线观看 | 成人97人人超碰人人99 | 99久久精品国产亚洲 | 日韩电影一区二区三区在线观看 | 高清中文字幕 | 欧美极品xxxxx | 色婷婷中文| 国产一级特黄毛片在线毛片 | av免费网站在线观看 | 国产婷婷久久 | 久久激情视频免费观看 | 国产精品高清免费在线观看 | 人人讲 | 97色婷婷人人爽人人 | 久久综合久久综合这里只有精品 | 日本资源中文字幕在线 | 欧美有色 | 日韩免费视频一区二区 | 区一区二区三在线观看 | 草久在线观看 | 中文字幕一区二区在线观看 | 天天艹天天操 | 日韩高清 一区 | 日韩理论在线播放 | 97超在线视频 | 亚洲国内精品视频 | 黄色在线观看免费 | 最新极品jizzhd欧美 | 久久国产露脸精品国产 | 久久黄色免费观看 | 国产精品一区二区三区99 | 久久久久久久久免费视频 | 久久av电影 | 视频三区 | 午夜国产在线 | 欧美日韩一区二区三区在线观看视频 | 国产露脸91国语对白 | 日日夜夜网 | 欧美影院久久 | 久久精品久久99精品久久 | a级片网站| 中文字幕亚洲欧美日韩2019 | 国产美女免费 | 色小说在线| 久久久精品午夜 | 午夜性生活片 | 久久综合久久综合九色 | 五月综合网 | 国产午夜免费视频 | 国产91精品一区二区麻豆网站 | 日韩三级免费观看 | 特级毛片在线免费观看 | 亚洲一二三在线 | 免费看一级片 | 在线观看亚洲免费视频 | 干 操 插 | 久久dvd | 韩国av免费观看 | 久久久久免费网站 | 色网站中文字幕 | 又粗又长又大又爽又黄少妇毛片 | 国产美女精品视频 | 日韩在观看线 | 久久影院亚洲 | 日韩中文字幕视频在线 | 五月综合色婷婷 | 999ZYZ玖玖资源站永久 | 999电影免费在线观看2020 | 91精品老司机久久一区啪 | 在线成人性视频 | 99热这里只有精品久久 | 中国一级片在线 | 国产亚洲在线观看 | 欧美日韩亚洲一 | 99九九视频| av中文在线观看 | 国产精品成人一区二区 | 久久视频精品 | 精品福利国产 | 色综合天天爱 | 日韩电影黄色 | 99久精品视频 | 天堂av官网 | 欧美另类xxxx | 五月婷婷欧美视频 | 97成人在线免费视频 | 久久色在线播放 | 2018亚洲男人天堂 | 99久久99热这里只有精品 | 日韩大片在线播放 | 国产在线播放一区二区三区 | 亚洲精品国产日韩 | av福利网址导航大全 | 九九精品视频在线看 | 91福利视频网站 | 天天射天天艹 | 91亚洲精品在线观看 | 美女免费视频一区二区 | 久久香蕉国产精品麻豆粉嫩av | 天天操天天摸天天爽 | 国产1区2区3区精品美女 | 91精品国产麻豆 | 亚洲精品视频久久 | 久久中文字幕视频 | 91资源在线免费观看 | 久久综合干| 91免费版在线观看 | 99色99| 欧美成人h版在线观看 | 在线精品在线 | 久久久久久久久免费视频 | 国产精品视频免费看 | 亚洲爱爱视频 | 国产精品一区在线播放 | 精品久久久久久久久久久久久久久久 | 日韩高清 一区 | 成人免费视频在线观看 | 中日韩欧美精彩视频 | 97香蕉超级碰碰久久免费软件 | 精品久久久久久亚洲综合网站 | 在线观看资源 | 国产一级片免费视频 | 国产乱码精品一区二区蜜臀 | 亚洲精品一区二区三区在线观看 | 色视频在线免费 | 99在线精品免费视频九九视 | 色婷婷狠狠18 | 麻豆一二三精选视频 | 国产专区视频在线观看 | 久久尤物电影视频在线观看 | 国产精品久久影院 | 久久中文精品视频 | 在线观看亚洲视频 | 在线观看国产区 | 超碰97人人干| 在线看成人 | 色www永久免费 | 日韩av进入 | 日韩成人邪恶影片 | 黄色精品在线看 | 丁香花在线观看免费完整版视频 | 99免费看片 | 视频成人免费 | 成人h视频 | 一区二区在线电影 | 欧美精品在线观看免费 | 精品欧美一区二区在线观看 | 在线看国产日韩 | 婷婷亚洲五月色综合 | 在线国产中文字幕 | 99久久精品免费看国产麻豆 | 99在线免费观看视频 | 在线观看不卡的av | 国产亚洲高清视频 | 国产精品久久一区二区无卡 | 亚洲激情六月 | 999在线视频 | av在线免费在线 | 永久免费的av电影 | 日韩精品视频在线观看免费 | 欧美 日韩 性 | 欧美精品久久久久久久亚洲调教 | 免费不卡中文字幕视频 | av免费网站在线观看 | 免费a v在线 | 丰满少妇高潮在线观看 | 在线视频久久 | 亚洲成色777777在线观看影院 | 色婷婷综合成人av | 日韩黄色免费 | 精品久久久久久久久久久久久久久久 | 五月天激情综合 | 天天爽天天做 | 人人爽人人看 | 久艹在线观看视频 | 成片视频在线观看 | 日韩三级免费观看 | 免费精品在线观看 | 四月婷婷在线观看 | 2019久久精品 | 欧美日韩中文国产一区发布 | 五月婷网站| 草久电影| 又黄又刺激又爽的视频 | 国产女做a爱免费视频 | 91亚洲精品国偷拍 | 一级黄色片在线免费观看 | 国产成人精品女人久久久 | 亚洲欧美少妇 | 91在线中文 | 欧美在线观看视频一区二区三区 | 精品一区二区影视 | 精品福利在线 | 亚洲国产黄色 | 中文字幕视频观看 | 欧美一级免费在线 | 欧美日韩国产精品一区 | 中文字幕精品三区 | 日韩在线不卡视频 | 欧美网站黄色 | 91成人免费看 | 超碰在线色 | 91av资源网| av免费看在线 | 99在线国产 | 久久色网站 | 欧美亚洲一区二区在线 | 24小时日本在线www免费的 | 国产精品欧美久久久久三级 | 久久这里只有精品9 | 久草视频在线免费 | 91在线精品秘密一区二区 | 精品国产人成亚洲区 | 天天操天天色综合 | 狠狠干中文字幕 | 日韩在线观看a | 狠狠色狠狠色综合日日小说 | 久久久久久久久久伊人 | 欧美日韩高清在线一区 | 91黄色在线观看 | 五月天婷婷免费视频 | www.色五月.com | 亚洲精品乱码久久久一二三 | 西西www4444大胆在线 | 国产99久久久久 | 九九导航 | 亚洲精品日韩一区二区电影 | 欧美日比视频 | 成人国产精品久久久春色 | 麻豆久久久久久久 | 在线 欧美 日韩 | 国产小视频国产精品 | 日本久久久精品视频 | 免费不卡中文字幕视频 | 久久视频在线观看中文字幕 | 日韩在线视频免费观看 | 久久综合五月天 | 国产又黄又硬又爽 | 精品 一区 在线 | 久久99国产精品免费 | 亚洲精品欧美专区 | 欧美日韩国产网站 | 色婷婷综合视频在线观看 | 国产精品日韩在线 | 国产综合在线视频 | 久久综合久久综合这里只有精品 | 国产真实精品久久二三区 | 国产一二三四在线视频 | 最近乱久中文字幕 | 久久九九国产精品 | 国产一区二三区好的 | 91精品国产91久久久久福利 | 91久久国产自产拍夜夜嗨 | 国产一区视频在线 | 激情网色| 91精品国产福利在线观看 | 婷婷丁香花五月天 | 国产精品亚洲人在线观看 | 九月婷婷综合网 | a特级毛片| 国内免费的中文字幕 | 国产福利中文字幕 | 精品久久久久一区二区国产 | 色综合久久99 | 欧美日韩国产xxx | 一区 二区 精品 | 激情五月色播五月 | 欧美一级日韩免费不卡 | 少妇bbw搡bbbb搡bbbb | 9999精品视频 | 久久精品看片 | 日韩免费在线网站 | 国产精品中文在线 | 久久婷婷国产 | 亚洲第一中文字幕 | 久久成人综合视频 | 日本三级全黄少妇三2023 | 国产69精品久久久久99尤 | 国产丝袜在线 | 国产粉嫩在线 | 色婷婷一区| 久久不卡日韩美女 | 亚洲国产网站 | 97香蕉久久国产在线观看 | 欧美最新大片在线看 | 337p日本欧洲亚洲大胆裸体艺术 | 91chinese在线 | 99久久综合国产精品二区 | 日韩在线视频国产 | 美女视频黄频大全免费 | 99在线免费视频 | 黄色网在线免费观看 | 亚洲aaa级 | 国产成人一区二区三区久久精品 | 精品国产精品久久一区免费式 | 免费一级特黄毛大片 | 99视频在线观看一区三区 | 9999在线 | 天天干天天摸 | 国产成人精品午夜在线播放 | 最近在线中文字幕 | 久久国产露脸精品国产 | 日本动漫做毛片一区二区 | 成人免费在线播放 | 成在线播放| 黄a在线看 | 天堂资源在线观看视频 | 国产色婷婷精品综合在线手机播放 | 免费观看十分钟 | 久久一本综合 | 一级特黄av | 国产剧在线观看片 | 69精品在线 | 五月天电影免费在线观看一区 | 久久久蜜桃 | 久久国产欧美日韩精品 | 成人黄色av免费在线观看 | 99国内精品久久久久久久 | 91麻豆看国产在线紧急地址 | 成人午夜精品久久久久久久3d | 在线 成人 | 91精品对白一区国产伦 | 777xxx欧美| 黄色小网站在线 | 成人黄色大片在线免费观看 | 精品国产一二区 | 天天摸夜夜添 | 久久区二区 | 亚洲少妇xxxx | 亚洲欧美乱综合图片区小说区 | 91精品国产九九九久久久亚洲 | 国产综合福利在线 | 国产在线a | 婷婷伊人综合亚洲综合网 | 欧美专区亚洲专区 | 久久在线视频在线 | 精品96久久久久久中文字幕无 | 国产xxxxx在线观看 | 亚洲资源 | 九九热久久免费视频 | 美女视频黄网站 | 国产精品国产三级在线专区 | 日本黄色免费电影网站 | 婷婷在线观看视频 | 久久久久久久久久电影 | 中文国产字幕 | 91av视频观看| 国产亚洲精品久久久久动 | 日本性久久 | 欧美日韩精品影院 | 国产麻豆剧果冻传媒视频播放量 | 国产精品女视频 | 狠狠色丁香婷婷综合橹88 | 日韩午夜一级片 | 草草草影院 | 日韩精品在线免费播放 | 成在人线av | 欧美爽爽爽 | 亚洲天堂视频在线 | 黄色a大片| 玖草在线观看 | 成人av网站在线 | 欧美人人 | 亚洲午夜精 | 9在线观看免费高清完整版 玖玖爱免费视频 | 国产精品久久久久久久久久久久 | 91理论片午午伦夜理片久久 | 国产无遮挡又黄又爽在线观看 | 天天干天天综合 | 国产一区精品在线观看 | 天天插天天色 | 国模视频一区二区三区 | 日韩欧美视频免费在线观看 | 伊人宗合网 | a在线观看国产 | 欧美成人精品三级在线观看播放 | 色九九在线 | 最近高清中文字幕在线国语5 | 欧洲一区二区三区精品 | 日韩影视大全 | 久久精品1区2区 | 日韩高清av | 超碰97中文| 91精品国产麻豆 | 精品国产亚洲一区二区麻豆 | 在线视频久久 | 日韩欧美一区二区三区免费观看 | 国产亚洲在 | 国产在线精品视频 | 在线观看网站av | 国产只有精品 | 免费观看久久 | 婷婷激情影院 | 六月丁香激情综合色啪小说 | 日韩女同av | 天天爱天天射天天干天天 | 久久国产精品久久久久 | 最新av网址在线观看 | 日韩网站在线看片你懂的 | 91精品亚洲影视在线观看 | 国产不卡免费视频 | 综合色综合 | a天堂最新版中文在线地址 久久99久久精品国产 | 国产91影院| 免费人成网ww44kk44 | 97电影手机 | 综合久久精品 | 久久精品视频播放 | 色噜噜日韩精品欧美一区二区 | 国产精品视频免费 | 日韩成人中文字幕 | 国产精品女同一区二区三区久久夜 | 国产精品午夜在线 | 国产精品资源网 | 狠狠干成人 | 久久99精品国产麻豆宅宅 | 国产真实精品久久二三区 | 国产91欧美| 久久久久成人精品亚洲国产 | 四虎国产精品免费观看视频优播 | 日韩av网站在线播放 | 天天插狠狠插 | 六月丁香婷婷久久 | 99视频在线免费观看 | 综合伊人av | 亚洲国产欧洲综合997久久, | 狠狠躁18三区二区一区ai明星 | 久久黄色小说视频 | 欧美日韩视频一区二区 | 性日韩欧美在线视频 | 日精品 | 在线观看av黄色 | 久久99国产精品久久99 | 在线观看www. | 色婷婷精品大在线视频 | 91麻豆精品国产 | 在线免费观看黄色 | 97超碰免费在线 | 三级在线视频观看 | 国产精品美女久久久久久久 | 国产99区| www..com黄色片 | 亚洲国产成人在线播放 | 中文字幕电影网 | 福利在线看片 | 在线亚州 | 国产老熟 | 国产黄色免费观看 | 成人va天堂 | 国产中文字幕视频 | 激情五月在线观看 | 人人盈棋牌| 天天操天天射天天插 | 欧美激情综合五月 | 成人久久精品视频 | 国产精品久久久久久一区二区三区 | 国产在线中文字幕 | 久久久久久99精品 | 激情久久久久久久久久久久久久久久 | 99精品欧美一区二区蜜桃免费 | 成年人看片 | 国产黑丝一区二区 | 亚洲国产大片 | 丁香激情综合国产 | 91看片淫黄大片一级在线观看 | 亚洲九九精品 | 激情综合网五月婷婷 | 中文字幕av在线电影 | 在线观看中文字幕网站 | 日韩专区av| 亚洲国产大片 | 五月婷婷在线视频观看 | 中文字幕日韩一区二区三区不卡 | 国产精品久久久久永久免费 | 国产成人精品一区二区三区免费 | 久久综合九色综合久久久精品综合 | 免费色网 | 国产高清免费视频 | 最新超碰| 免费看成年人 | av高清一区 | 国产黄色免费观看 | av一级一片 | av免费在线看网站 | 国产精品热视频 | 免费色网站 | 亚洲精品伦理在线 | 手机色在线| 国产高清专区 | 国产99久久久精品 | 免费大片av| 波多野结衣一区三区 | 福利电影一区二区 | 精品国产乱码久久久久久1区二区 | 午夜18视频在线观看 | www.av免费 | 国产黄在线免费观看 | 国产亚洲综合在线 | 成人a级网站 | 欧美网站黄色 | 国产精品密入口果冻 | www.夜夜夜 | 欧美日韩中文视频 | .国产精品成人自产拍在线观看6 | 久草视频手机在线 | 国产v欧美 | 伊人狠狠干 | 久久国产高清 | 我要看黄色一级片 | 亚洲欧美一区二区三区孕妇写真 | 日韩欧美在线免费 | 激情导航 | 久久久国产日韩 | 不卡的av中文字幕 | 91麻豆高清视频 | 91精品国产综合久久福利不卡 | 香蕉视频在线免费看 | 免费欧美高清视频 | 探花系列在线 | 狠狠操综合 | 日韩av视屏在线观看 | 超碰99在线 | 国产精品免费久久久久久 | av3级在线| 999久久国精品免费观看网站 | 日韩v欧美v日本v亚洲v国产v | 91热爆在线观看 | 成人av免费在线 | 狠狠干美女 | 久草在线视频看看 | 91精品视频在线看 | 日本中文一区二区 | 久久爱导航 | 日本视频久久久 | 欧美在线视频一区二区三区 | 中文字幕一区二区三区在线播放 | 亚洲六月丁香色婷婷综合久久 | 国产99视频在线观看 | 国产精品永久在线 | 日韩精品一区二区在线观看 | 天天躁天天操 | 国产爽视频 | 天堂av一区二区 | 久久9视频 | 国外成人在线视频网站 | 九九九热精品免费视频观看网站 | 久久网站免费 | 在线播放 日韩专区 | 99在线播放 | 午夜精品久久久久久久99水蜜桃 | 91在线播放综合 | 91人人爽人人爽人人精88v | 激情丁香综合 | 综合激情婷婷 | 操操日日| av一区二区三区在线播放 | 欧美肥妇free | 国产中文字幕在线免费观看 | 超碰97在线人人 | 国产日韩中文字幕在线 | 国产精品免费久久久久久久久久中文 | 免费观看福利视频 | 婷色在线| 久久免费中文视频 | 91成熟丰满女人少妇 | 国产一区在线免费 | 手机av在线免费观看 | 国产专区在线看 | 亚洲 综合 激情 | 在线观看成人小视频 | 美女免费黄网站 | 中日韩三级视频 | 亚洲成人xxx | 久久综合久久综合这里只有精品 | 国产精品美女久久久久久久久久久 | 久久久国产精品成人免费 | 美女网站在线观看 | 国产亲近乱来精品 | 综合色综合色 | 中文字幕日本在线观看 | 色噜噜狠狠狠狠色综合 | 国产精品久久久久永久免费看 | 99成人免费视频 | 精品视频在线视频 | 美女黄频在线观看 | 成人avav| 国产精品一区二区在线免费观看 | 91成人免费观看视频 | 成人啪啪18免费游戏链接 | 日韩中文字幕在线观看 | 国内视频 | 九九免费在线看完整版 | 精品国产免费观看 | 91大神免费视频 | 日日操操 | 欧美日韩国产一区二区在线观看 | 国产视| 97在线观看免费观看高清 | 91尤物国产尤物福利在线播放 | 狠狠色丁香久久婷婷综合五月 | 亚洲天天干 | 天天舔天天搞 | 国产婷婷视频在线 | 日韩在线观看免费 | 18性欧美xxxⅹ性满足 | 色婷婷免费视频 | 国产精品嫩草69影院 | 日本狠狠干 | 深夜福利视频一区二区 | 爱爱一区 | 九九日九九操 | 国产在线观看国语版免费 | 亚洲欧美日韩国产精品一区午夜 | 成人黄色电影视频 | 超碰在线色 | 美国三级黄色大片 | 超碰国产人人 | 国产艹b视频 | 国产一级性生活视频 | 天天操天天操一操 | 色网免费观看 | 国产一区二区三区免费在线观看 | 精品成人久久 | 一区二区视频电影在线观看 | 午夜久久视频 | 在线午夜 | 蜜臀av性久久久久av蜜臀妖精 | 91av视频网| 在线观看黄网站 | 日本三级在线观看中文字 | 亚洲va欧美va国产va黑人 | 狠狠操欧美 | 人人讲下载 | 成人一级黄色片 |