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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux下网络socket编程——实现服务器(select)与多个客户端通信

發(fā)布時(shí)間:2023/12/20 linux 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下网络socket编程——实现服务器(select)与多个客户端通信 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、關(guān)于socket通信

服務(wù)器端工作流程:

  • 調(diào)用 socket() 函數(shù)創(chuàng)建套接字 用 bind() 函數(shù)將創(chuàng)建的套接字與服務(wù)端IP地址綁定
  • 調(diào)用listen()函數(shù)監(jiān)聽(tīng)socket() 函數(shù)創(chuàng)建的套接字,等待客戶端連接 當(dāng)客戶端請(qǐng)求到來(lái)之后
  • 調(diào)用 accept()函數(shù)接受連接請(qǐng)求,返回一個(gè)對(duì)應(yīng)于此連接的新的套接字,做好通信準(zhǔn)備
  • 調(diào)用 write()/read() 函數(shù)和 send()/recv()函數(shù)進(jìn)行數(shù)據(jù)的讀寫(xiě),通過(guò) accept() 返回的套接字和客戶端進(jìn)行通信 關(guān)閉socket(close)

客戶端工作流程:

  • 調(diào)用 socket() 函數(shù)創(chuàng)建套接字
  • 調(diào)用 connect() 函數(shù)連接服務(wù)端
  • 調(diào)用write()/read() 函數(shù)或者 send()/recv() 函數(shù)進(jìn)行數(shù)據(jù)的讀寫(xiě)
  • 關(guān)閉socket(close)

?

二、用select實(shí)現(xiàn)服務(wù)器端編程:

select函數(shù)樓主在之前文章中(select函數(shù)用法)已經(jīng)提及,不在多做綴述。下面貼上服務(wù)器端代碼servce.c

#include <stdio.h> #include <netinet/in.h> //for souockaddr_in #include <sys/types.h> #include <sys/socket.h> #include <errno.h> #include <stdlib.h>#include <arpa/inet.h>//for select #include <sys/time.h> #include <sys/types.h> #include <unistd.h> #include <sys/select.h>#include <strings.h> //for bzero #include <string.h>#define BUFF_SIZE 1024 #define backlog 7 #define ser_port 11277 #define CLI_NUM 3int client_fds[CLI_NUM];int main(int agrc,char **argv) {int ser_souck_fd;int i; char input_message[BUFF_SIZE];char resv_message[BUFF_SIZE];struct sockaddr_in ser_addr;ser_addr.sin_family= AF_INET; //IPV4ser_addr.sin_port = htons(ser_port); ser_addr.sin_addr.s_addr = INADDR_ANY; //指定的是所有地址//creat socketif( (ser_souck_fd = socket(AF_INET,SOCK_STREAM,0)) < 0 ){perror("creat failure");return -1;} //bind soucketif(bind(ser_souck_fd, (const struct sockaddr *)&ser_addr,sizeof(ser_addr)) < 0){perror("bind failure");return -1;}//listenif(listen(ser_souck_fd, backlog) < 0) {perror("listen failure"); return -1;}//fd_setfd_set ser_fdset;int max_fd=1;struct timeval mytime;printf("wait for client connnect!\n");while(1){mytime.tv_sec=27;mytime.tv_usec=0;FD_ZERO(&ser_fdset);//add standard inputFD_SET(0,&ser_fdset);if(max_fd < 0){max_fd=0; }//add serverceFD_SET(ser_souck_fd,&ser_fdset);if(max_fd < ser_souck_fd){max_fd = ser_souck_fd;}//add client for(i=0;i<CLI_NUM;i++) //用數(shù)組定義多個(gè)客戶端fd{if(client_fds[i]!=0) {FD_SET(client_fds[i],&ser_fdset);if(max_fd < client_fds[i]){max_fd = client_fds[i]; }}}//select多路復(fù)用int ret = select(max_fd + 1, &ser_fdset, NULL, NULL, &mytime);if(ret < 0) { perror("select failure\n"); continue; } else if(ret == 0){printf("time out!");continue;}else{if(FD_ISSET(0,&ser_fdset)) //標(biāo)準(zhǔn)輸入是否存在于ser_fdset集合中(也就是說(shuō),檢測(cè)到輸入時(shí),做如下事情){printf("send message to");bzero(input_message,BUFF_SIZE);fgets(input_message,BUFF_SIZE,stdin);for(i=0;i<CLI_NUM;i++){if(client_fds[i] != 0){printf("client_fds[%d]=%d\n", i, client_fds[i]);send(client_fds[i], input_message, BUFF_SIZE, 0);}}}if(FD_ISSET(ser_souck_fd, &ser_fdset)) {struct sockaddr_in client_address;socklen_t address_len;int client_sock_fd = accept(ser_souck_fd,(struct sockaddr *)&client_address, &address_len);if(client_sock_fd > 0){int flags=-1;//一個(gè)客戶端到來(lái)分配一個(gè)fd,CLI_NUM=3,則最多只能有三個(gè)客戶端,超過(guò)4以后跳出for循環(huán),flags重新被賦值為-1for(i=0;i<CLI_NUM;i++){if(client_fds[i] == 0){flags=i; client_fds[i] = client_sock_fd;break;}}if (flags >= 0){printf("new user client[%d] add sucessfully!\n",flags);}else //flags=-1{ char full_message[]="the client is full!can't join!\n";bzero(input_message,BUFF_SIZE);strncpy(input_message, full_message,100);send(client_sock_fd, input_message, BUFF_SIZE, 0);}} }}//deal with the messagefor(i=0; i<CLI_NUM; i++){if(client_fds[i] != 0){if(FD_ISSET(client_fds[i],&ser_fdset)){bzero(resv_message,BUFF_SIZE);int byte_num=read(client_fds[i],resv_message,BUFF_SIZE);if(byte_num > 0){printf("message form client[%d]:%s\n", i, resv_message);}else if(byte_num < 0){printf("rescessed error!");}//某個(gè)客戶端退出else //cancel fdset and set fd=0{printf("clien[%d] exit!\n",i);FD_CLR(client_fds[i], &ser_fdset);client_fds[i] = 0;// printf("clien[%d] exit!\n",i);continue; //這里如果用break的話一個(gè)客戶端退出會(huì)造成服務(wù)器也退出。 }}}} }return 0; }

select實(shí)現(xiàn)多路復(fù)用,多路復(fù)用,顧名思義,就是說(shuō)各做各的事,標(biāo)準(zhǔn)輸入事件到來(lái),有相關(guān)函數(shù)處理。服務(wù)器處理服務(wù)器的事件,客戶端到來(lái)時(shí)有相關(guān)函數(shù)對(duì)其進(jìn)行處理,通過(guò)select遍歷各fd的讀寫(xiě)情況,就不用擔(dān)心阻塞了。

三、用epoll實(shí)現(xiàn)客戶端編程:

1、客戶端程序(epoll_client.c):

#include<stdio.h> #include<stdlib.h> #include<netinet/in.h> #include<sys/socket.h> #include<arpa/inet.h> #include<string.h> #include<unistd.h> #include <sys/epoll.h> #include <errno.h> #include <fcntl.h>#define BUFFER_SIZE 1024 int main(int argc, const char * argv[]) { int i,n;int connfd,sockfd;struct epoll_event ev,events[20]; //ev用于注冊(cè)事件,數(shù)組用于回傳要處理的事件int epfd=epoll_create(256);//創(chuàng)建一個(gè)epoll的句柄,其中256為你epoll所支持的最大句柄數(shù)struct sockaddr_in client_addr;struct sockaddr_in server_addr; server_addr.sin_family = AF_INET; server_addr.sin_port = htons(11277); server_addr.sin_addr.s_addr =INADDR_ANY; bzero(&(server_addr.sin_zero), 8); int server_sock_fd = socket(AF_INET, SOCK_STREAM, 0); ev.data.fd=server_sock_fd;//設(shè)置與要處理的事件相關(guān)的文件描述符ev.events=EPOLLIN|EPOLLET;//設(shè)置要處理的事件類(lèi)型epoll_ctl(epfd,EPOLL_CTL_ADD,server_sock_fd,&ev);//注冊(cè)epoll事件if(server_sock_fd == -1) { perror("socket error"); return 1; } char recv_msg[BUFFER_SIZE]; char input_msg[BUFFER_SIZE]; if(connect(server_sock_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr_in)) == 0) { for(;;){int nfds=epoll_wait(epfd,events,20,500);//等待epoll事件的發(fā)生for(i=0;i<nfds;++i){ if(events[i].events&EPOLLOUT) //有數(shù)據(jù)發(fā)送,寫(xiě)socket{bzero(input_msg, BUFFER_SIZE); fgets(input_msg, BUFFER_SIZE, stdin); sockfd = events[i].data.fd;write(sockfd, recv_msg, n);ev.data.fd=sockfd;ev.events=EPOLLIN|EPOLLET;epoll_ctl(epfd,EPOLL_CTL_ADD,sockfd,&ev);} else if(events[i].events&EPOLLIN)//有數(shù)據(jù)到來(lái),讀socket{bzero(recv_msg, BUFFER_SIZE);if((n = read(server_sock_fd, recv_msg, BUFFER_SIZE)) <0 ){printf("read error!");}ev.data.fd=server_sock_fd;ev.events=EPOLLOUT|EPOLLET;printf("%s\n",recv_msg);}} }} return 0; }

2、關(guān)于epoll函數(shù):

相比于select,epoll最大的好處在于它不會(huì)隨著監(jiān)聽(tīng)fd數(shù)目的增長(zhǎng)而降低效率。因?yàn)樵趦?nèi)核中的select實(shí)現(xiàn)中,它是采用輪詢來(lái)處理的,輪詢的fd數(shù)目越多,自然耗時(shí)越多。并且,在linux/posix_types.h頭文件有這樣的聲明:
#define __FD_SETSIZE 1024
表示select最多同時(shí)監(jiān)聽(tīng)1024個(gè)fd

一共三個(gè)函數(shù):

1、 int epoll_create (int size); 創(chuàng)建一個(gè)epoll的句柄

size用來(lái)告訴內(nèi)核這個(gè)監(jiān)聽(tīng)的數(shù)目一共有多大。這個(gè)參數(shù)不同于select()中的第一個(gè)參數(shù),給出最大監(jiān)聽(tīng)的fd+1的值。需要注意的是,當(dāng)創(chuàng)建好epoll句柄后,它就是會(huì)占用一個(gè)fd值,在linux下如果查看/proc/進(jìn)程id/fd/,是能夠看到這個(gè)fd的,所以在使用完epoll后,必須調(diào)用close()關(guān)閉,否則可能導(dǎo)致fd被耗盡。

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

epoll的事件注冊(cè)函數(shù),它不同與select()是在監(jiān)聽(tīng)事件時(shí)告訴內(nèi)核要監(jiān)聽(tīng)什么類(lèi)型的事件,而是在這里先注冊(cè)要監(jiān)聽(tīng)的事件類(lèi)型。第一個(gè)參數(shù)是epoll_create()的返回值,第二個(gè)參數(shù)表示動(dòng)作,用三個(gè)宏來(lái)表示:

EPOLL_CTL_ADD:注冊(cè)新的fd到epfd中;

EPOLL_CTL_MOD:修改已經(jīng)注冊(cè)的fd的監(jiān)聽(tīng)事件;

EPOLL_CTL_DEL:從epfd中刪除一個(gè)fd;

第三個(gè)參數(shù)是需要監(jiān)聽(tīng)的fd

第四個(gè)參數(shù)是告訴內(nèi)核需要監(jiān)聽(tīng)什么事,struct epoll_event結(jié)構(gòu)如下:

struct epoll_event{__uint32_t events; /* Epoll events */epoll_data_t data; /* User data variable */ };

  

typedef union epoll_data{void *ptr;int fd;__uint32_t u32;__uint64_t u64; } epoll_data_t;

events可以是以下幾個(gè)宏的集合:

  • EPOLLIN :表示對(duì)應(yīng)的文件描述符可以讀(包括對(duì)端SOCKET正常關(guān)閉);
  • EPOLLOUT:表示對(duì)應(yīng)的文件描述符可以寫(xiě);
  • EPOLLPRI:表示對(duì)應(yīng)的文件描述符有緊急的數(shù)據(jù)可讀(這里應(yīng)該表示有帶外數(shù)據(jù)到來(lái));
  • EPOLLERR:表示對(duì)應(yīng)的文件描述符發(fā)生錯(cuò)誤;
  • EPOLLHUP:表示對(duì)應(yīng)的文件描述符被掛斷;
  • EPOLLET: 將EPOLL設(shè)為邊緣觸發(fā)(Edge Triggered)模式,這是相對(duì)于水平觸發(fā)(Level Triggered)來(lái)說(shuō)的。
  • EPOLLONESHOT:只監(jiān)聽(tīng)一次事件,當(dāng)監(jiān)聽(tīng)完這次事件之后,如果還需要繼續(xù)監(jiān)聽(tīng)這個(gè)socket的話,需要再次把這個(gè)socket加入到EPOLL隊(duì)列里
3、 int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout);

等待事件的產(chǎn)生,類(lèi)似于select()調(diào)用。

參數(shù)events用來(lái)從內(nèi)核得到事件的集合,

maxevents告之內(nèi)核這個(gè)events有多大,這個(gè) maxevents的值不能大于創(chuàng)建epoll_create()時(shí)的size,

參數(shù)timeout是超時(shí)時(shí)間(毫秒,0會(huì)立即返回,-1將不確定,也有說(shuō)法說(shuō)是永久阻塞)。該函數(shù)返回需要處理的事件數(shù)目,如返回0表示已超時(shí)。

使用步驟:

<1>首先通過(guò)create_epoll(int maxfds)來(lái)創(chuàng)建一個(gè)epoll的句柄,其中maxfds為你epoll所支持的最大句柄數(shù)。這個(gè)函數(shù)會(huì)返回一個(gè)新的epoll句柄,之后的所有操作將通過(guò)這個(gè)句柄來(lái)進(jìn)行操作。在用完之后,記得用close()來(lái)關(guān)閉這個(gè)創(chuàng)建出來(lái)的epoll句柄。

<2>然后每一幀的調(diào)用epoll_wait (int epfd, epoll_event events, int max events, int timeout) 來(lái)查詢所有的網(wǎng)絡(luò)接口。

<3>kdpfd為用epoll_create創(chuàng)建之后的句柄,events是一個(gè)epoll_event*的指針,當(dāng)epoll_wait這個(gè)函數(shù)操作成功之后,epoll_events里面將儲(chǔ)存所有的讀寫(xiě)事件。max_events是當(dāng)前需要監(jiān)聽(tīng)的所有socket句柄數(shù)。最后一個(gè)timeout是 epoll_wait的超時(shí),為0的時(shí)候表示馬上返回,為-1的時(shí)候表示一直等下去,直到有事件范圍,為任意正整數(shù)的時(shí)候表示等這么長(zhǎng)的時(shí)間,如果一直沒(méi)有事件,則返回。一般如果網(wǎng)絡(luò)主循環(huán)是單獨(dú)的線程的話,可以用-1來(lái)等,這樣可以保證一些效率,如果是和主邏輯在同一個(gè)線程的話,則可以用0來(lái)保證主循環(huán)的效率。 epoll_wait返回之后應(yīng)該是一個(gè)循環(huán),遍歷所有的事件。

基本上都是如下的框架:

for( ; ; ){nfds = epoll_wait(epfd,events,20,500);for(i=0;i<nfds;++i){if(events[i].data.fd==listenfd) //有新的連接{connfd = accept(listenfd,(sockaddr *)&clientaddr, &clilen); //accept這個(gè)連接ev.data.fd=connfd;ev.events=EPOLLIN|EPOLLET;epoll_ctl(epfd,EPOLL_CTL_ADD,connfd,&ev); //將新的fd添加到epoll的監(jiān)聽(tīng)隊(duì)列中}else if( events[i].events&EPOLLIN ) //接收到數(shù)據(jù),讀socket{n = read(sockfd, line, MAXLINE)) < 0 //讀ev.data.ptr = md; //md為自定義類(lèi)型,添加數(shù)據(jù)ev.events=EPOLLOUT|EPOLLET;epoll_ctl(epfd,EPOLL_CTL_MOD,sockfd,&ev);//修改標(biāo)識(shí)符,等待下一個(gè)循環(huán)時(shí)發(fā)送數(shù)據(jù),異步處理的精髓}else if(events[i].events&EPOLLOUT) //有數(shù)據(jù)待發(fā)送,寫(xiě)socket{struct myepoll_data* md = (myepoll_data*)events[i].data.ptr; //取數(shù)據(jù)sockfd = md->fd;send( sockfd, md->ptr, strlen((char*)md->ptr), 0 ); //發(fā)送數(shù)據(jù)ev.data.fd=sockfd;ev.events=EPOLLIN|EPOLLET;epoll_ctl(epfd,EPOLL_CTL_MOD,sockfd,&ev); //修改標(biāo)識(shí)符,等待下一個(gè)循環(huán)時(shí)接收數(shù)據(jù)}else{//其他的處理}}}

  

?

轉(zhuǎn)載于:https://www.cnblogs.com/wuyepeng/p/9726771.html

總結(jié)

以上是生活随笔為你收集整理的Linux下网络socket编程——实现服务器(select)与多个客户端通信的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国产精品九九九九九九 | 天天爱天天射天天干天天 | 日韩手机视频 | 在线视频福利 | 91亚洲精品国偷拍 | 日韩电影中文字幕在线 | 国产美女永久免费 | 天天干天天摸天天操 | 久久久国产精品视频 | 天天操天天干天天 | 97人人模人人爽人人喊网 | 国产成人综合精品 | 精品国产一区二区三区男人吃奶 | 黄色一级免费 | 四虎成人在线 | 五月婷婷激情网 | 91精品啪在线观看国产81旧版 | 日韩视频免费播放 | 久久久综合精品 | 日韩视频一二三区 | 欧美综合久久 | 免费黄色a级毛片 | 国产又粗又猛又黄 | 中文在线免费观看 | 91中文字幕在线播放 | 国产精品99久久免费观看 | 色五月成人 | 一级欧美一级日韩 | 国产成人一级电影 | 99热最新网址 | 天堂va在线观看 | 奇米四色影狠狠爱7777 | 手机在线视频福利 | 日韩欧美一区二区三区视频 | 久久99精品久久久久久清纯直播 | 久久久麻豆视频 | 91精品在线视频 | 国产成人亚洲在线电影 | www.亚洲视频.com | 国产一二区精品 | 日韩视频中文字幕在线观看 | 91在线视频网址 | 成人免费视频网站 | 8x成人免费视频 | 国产精品成人a免费观看 | 麻豆国产网站入口 | 五月婷婷在线视频观看 | 这里只有精品视频在线观看 | 91视视频在线直接观看在线看网页在线看 | 久久精品韩国 | 国产a视频免费观看 | 西西444www大胆高清图片 | 亚洲精品国产精品99久久 | 日韩中文字幕国产 | 涩涩在线 | 91豆花在线观看 | 日本不卡123区 | 国产色资源 | 日韩爱爱网站 | 欧美精品九九99久久 | 亚洲精品久久久久中文字幕m男 | 欧美有色| 久久国内免费视频 | av高清免费在线 | 国产亚洲精品久久久久久久久久久久 | 精品亚洲一区二区三区 | 免费在线看成人av | 色婷婷天天干 | 97电影在线观看 | 久久99国产一区二区三区 | 中文字幕 影院 | 欧美性高跟鞋xxxxhd | 五月婷婷综合激情网 | 97精品视频在线播放 | 免费看片网址 | 99精品视频免费在线观看 | av日韩av| 久久66热这里只有精品 | 午夜精品久久久99热福利 | 欧美日韩另类在线 | 日韩精品一区二区三区中文字幕 | 黄色一级在线免费观看 | 欧美日韩国产二区三区 | 500部大龄熟乱视频 欧美日本三级 | 黄色三级免费网址 | 手机在线看永久av片免费 | 久久99精品久久久久久久久久久久 | 久草视频在线免费看 | 91九色在线观看视频 | 九九视频精品免费 | 九九热在线播放 | 国产亚洲精品av | 天天操天天干天天操天天干 | 美女久久一区 | 中文字幕国产一区二区 | 久操视频在线观看 | 欧美一级片在线播放 | 超碰国产在线 | 97免费在线观看 | 黄色a一级视频 | 国产 欧美 日产久久 | 久久艹艹| 91丝袜美腿| www·22com天天操 | 国产日韩在线视频 | 日本精品视频免费观看 | 91人人干| 精品国内 | 国产 日韩 欧美 中文 在线播放 | 黄色一级影院 | 91av视频免费在线观看 | 久久99热这里只有精品 | 俺要去色综合狠狠 | 国产成年免费视频 | 亚洲婷婷伊人 | 日本午夜在线观看 | 亚洲精品午夜久久久久久久 | 一区二区三区电影在线播 | 精品xxx| 99re亚洲国产精品 | 全久久久久久久久久久电影 | 日韩在线视频网址 | 特黄色大片 | 欧美91片 | 欧美日韩一区二区久久 | 91亚洲精 | 国产精品成人av久久 | 中文乱码视频在线观看 | 在线免费看片 | 色婷婷免费视频 | 久久综合狠狠综合久久狠狠色综合 | 国产高清在线不卡 | 九九九九色 | 久久99精品国产麻豆婷婷 | 人人插超碰 | www免费看片com | 久久久久久久综合色一本 | 午夜视频在线观看欧美 | 国产精品福利久久久 | 香蕉影视在线观看 | 久久精品视频在线观看免费 | 国产中文字幕在线 | 国产香蕉在线 | 综合网伊人 | 97在线看片 | 国产欧美久久久精品影院 | 国产黄 | av 一区二区三区 | 久久天天躁夜夜躁狠狠85麻豆 | 日日日日| 欧美成人tv| 免费观看视频的网站 | 伊人导航| 欧美a视频在线观看 | 欧洲成人av | 91精品国产三级a在线观看 | 国产精品k频道 | 99久久久久免费精品国产 | 一区二区三区电影大全 | 国产高清小视频 | 国产精品 国内视频 | 最近中文字幕免费大全 | 久久国产精品一区二区 | 日韩精品黄 | 国产精品美女www爽爽爽视频 | 天天爽网站 | 黄色软件在线观看视频 | 久草精品视频在线观看 | 久久精美视频 | 亚洲国产精品第一区二区 | 日日爱影视 | 久操视频在线免费看 | 一级欧美日韩 | 黄色小说在线免费观看 | 国产精品网在线观看 | 欧美激情视频一区二区三区 | 91亚洲精品久久久蜜桃网站 | 日韩久久精品一区 | 99色人| 亚洲一区二区精品3399 | 一区二区三区高清不卡 | 精品在线视频一区二区三区 | 日本精品视频网站 | 少妇高潮流白浆在线观看 | 婷婷久久亚洲 | 国产在线观看你懂得 | 免费国产在线精品 | 91久久久国产精品 | 亚洲国产成人av网 | 亚洲国产经典视频 | 一级欧美黄 | 国产永久免费高清在线观看视频 | 国产91粉嫩白浆在线观看 | 精品久久久久一区二区国产 | 日韩毛片久久久 | 视频91在线 | 成人黄色电影在线播放 | 精品视频久久久 | 麻豆视频在线播放 | 精品美女视频 | 国产手机视频在线观看 | 91麻豆精品国产91久久久无限制版 | 97成人精品视频在线观看 | 国产成人福利在线 | 亚洲深夜影院 | 免费毛片aaaaaa | 久久99欧美 | 四虎影视4hu4虎成人 | 91麻豆网站 | 亚洲成人黄色网址 | 欧美亚洲精品在线观看 | 久久不射电影院 | 国产精品99页| 欧美精品久久久久久久久久久 | 久久精品这里精品 | 久久久久欧美精品999 | 久久综合网色—综合色88 | 亚洲第一区在线播放 | 免费三级大片 | 国产免费一区二区三区网站免费 | 日日天天 | 特级毛片aaa | 中文字幕日韩伦理 | 国产青春久久久国产毛片 | 91成年人视频 | 不卡中文字幕在线 | 超碰人人超 | 青春草国产视频 | 精品国产一二三四区 | 久久久久一区二区三区四区 | 日韩一二区在线观看 | 一二三区视频在线 | 特级黄色片免费看 | 久久国产精品99久久人人澡 | 97看片网| 又爽又黄又无遮挡网站动态图 | 欧美日韩免费一区 | 黄色片亚洲 | 日韩久久久 | 少妇激情久久 | 精品国产一区二区三区久久久久久 | 免费在线观看成人小视频 | 国外调教视频网站 | 99精品视频精品精品视频 | 黄色影院在线免费观看 | 天堂va欧美va亚洲va老司机 | 人人玩人人弄 | 色婷婷免费视频 | 色天天综合久久久久综合片 | 激情综合五月婷婷 | 91插插视频 | 日韩一二三 | 久久人人爽人人人人片 | 一区 在线 影院 | 国产精品一区二区免费看 | 免费成人av在线看 | 狠狠躁日日躁狂躁夜夜躁av | 亚洲成人资源 | 高清av免费看 | 久久久久电影网站 | 成人在线视频一区 | 国产精品久久久久久久久久久不卡 | 国产精品18久久久久久久久久久久 | 精品国偷自产在线 | 西西444www高清大胆 | 国产精品淫片 | 国产男女爽爽爽免费视频 | 在线播放亚洲激情 | 亚洲欧洲一级 | 久久免费播放 | 永久免费毛片在线观看 | 久久精品国产美女 | 国产精品一区二区你懂的 | 国偷自产中文字幕亚洲手机在线 | 欧美激情另类 | 亚洲视频网站在线观看 | 91免费观看国产 | 国产不卡在线 | 四虎影视成人永久免费观看亚洲欧美 | 国产一级视频在线观看 | 干狠狠| 日本亚洲国产 | 国产亚洲成av人片在线观看桃 | 成人黄色视 | 97精品国产手机 | av解说在线 | 综合国产在线观看 | 99久久婷婷国产一区二区三区 | 中文字幕一区二区三区精华液 | 国产精品9999| 97av视频在线观看 | 亚洲精品国产精品久久99热 | 人人爽人人看 | 国产高清在线一区 | 超碰97人人在线 | 午夜视频在线网站 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 午夜美女福利直播 | 亚洲伊人网在线观看 | 免费看的黄色 | 在线观看自拍 | 免费日韩 精品中文字幕视频在线 | 视频直播国产精品 | 日韩欧美电影网 | 欧美日韩xxxxx | 午夜精品剧场 | 91丨九色丨国产在线 | 在线观看视频免费大全 | 91精品国产自产91精品 | 99成人在线视频 | 亚洲欧美偷拍另类 | 欧美一级片免费播放 | 欧美一级爽 | 麻豆视频免费观看 | 久久综合狠狠综合久久狠狠色综合 | 国产在线精品福利 | 六月色婷 | 婷婷六月网 | 国产成人久久av | 91麻豆精品国产91久久久无限制版 | 久久国产一二区 | av软件在线观看 | 中文字幕二区在线观看 | 色妞色视频一区二区三区四区 | av资源网在线播放 | 国产中文字幕网 | 精品二区视频 | 乱子伦av | 91成人破解版| 国内一级片在线观看 | 99视频+国产日韩欧美 | 丝袜美腿亚洲 | 激情深爱 | 免费看十八岁美女 | 天堂av免费| 91视频一8mav | 日韩免费一区二区三区 | 天天射天天做 | 91在线看黄 | 中文字幕在线观看网站 | 色婷婷综合成人av | 亚洲午夜精品一区 | 91精品久久久久久久99蜜桃 | 国产成人久久av免费高清密臂 | 免费日韩视 | 99欧美| 日韩高清不卡一区二区三区 | 一级黄色片在线观看 | 免费av福利 | 色天堂在线视频 | 国产精品一区二区三区免费看 | 色资源在线 | 久久爽久久爽久久av东京爽 | 国产精品一区二区久久久 | 69国产精品视频免费观看 | 国产亚洲资源 | 五月天综合网站 | 青草视频在线播放 | 五月婷婷激情 | www.亚洲视频 | 国产亚洲在线观看 | 在线99视频 | 久久福利综合 | 9在线观看免费高清完整版在线观看明 | 亚洲涩涩色 | 精品国产aⅴ麻豆 | 免费黄色a网站 | 四虎国产精品永久在线国在线 | 国产日本在线播放 | 国产女人18毛片水真多18精品 | 国产一区二区不卡视频 | 天天爽人人爽夜夜爽 | 夜夜操天天操 | 久久人人爽人人片av | 日韩中文字幕国产精品 | 2019免费中文字幕 | 国产精品毛片一区 | 99久久www免费| 成人午夜电影在线播放 | 成人a在线观看高清电影 | 高清有码中文字幕 | 粉嫩av一区二区三区四区在线观看 | 色射爱| 国产永久免费高清在线观看视频 | 黄色一级网 | 免费碰碰| 色综合五月 | 精品国产一区二区三区久久影院 | 色资源网免费观看视频 | 99久久夜色精品国产亚洲96 | 国产成人黄色网址 | 国产原创中文在线 | 人人射人人爱 | 青青河边草免费观看 | 一区二区不卡高清 | 天天射天天干天天插 | 六月丁香综合网 | 91麻豆操 | 99精品国自产在线 | 91精品办公室少妇高潮对白 | www免费黄色 | 精品国偷自产在线 | 日韩三级视频在线看 | 日本色小说视频 | 美女网站视频久久 | 久久艹艹| 色88久久 | 99久久久久久久久 | 国产黄色精品视频 | 色天堂在线视频 | 天堂麻豆| 91网免费观看 | 中文视频在线 | 久久精品www人人爽人人 | 91精品视频免费观看 | 在线免费黄色片 | 中文在线中文a | 亚洲理论片 | 欧美精品资源 | 婷婷色在线视频 | 久久久免费播放 | 中文字幕在线免费看线人 | 中文字幕第一 | 久久久久草 | 免费日韩一区 | 久久久久成人精品免费播放动漫 | 国产精品视频免费看 | 精品国产自 | 在线欧美日韩 | 欧美日韩在线精品 | 久久精品99国产精品日本 | 日韩大陆欧美高清视频区 | 中文字幕色综合网 | 夜色.com| 91亚洲精品国偷拍 | 日韩在线网 | 在线亚洲天堂网 | 在线日本看片免费人成视久网 | 精品美女在线观看 | 男女视频国产 | 五月婷婷六月丁香 | 国产视频一区精品 | 久久不卡电影 | 国产手机在线播放 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 91亚洲精品久久久蜜桃借种 | 中文字幕久久久精品 | 久久超 | 久久99久久99精品免费看小说 | 精品视频在线播放 | 婷婷综合久久 | 香蕉久久国产 | 免费在线观看不卡av | 欧美xxxx性xxxxx高清 | 天天天色综合 | 欧美孕交vivoestv另类 | 91视频在线观看大全 | 日韩伦理片一区二区三区 | 天天色宗合 | 国产欧美综合在线观看 | 国产精品原创 | 2023av| 91大神一区二区三区 | 久久国产精品第一页 | 久热电影 | 日韩黄色在线观看 | 欧美日韩xx | 韩国av一区二区三区在线观看 | 国产精品久久久久久妇 | 97超碰在线免费观看 | 综合av在线 | 亚洲国产视频网站 | 99久久影视| 亚洲一区免费在线 | 亚洲传媒在线 | 欧美国产大片 | 久久99精品国产一区二区三区 | 国产 日韩 中文字幕 | 日韩欧美在线中文字幕 | 91私密视频 | 精品国产电影一区 | 69av免费视频 | 亚洲精品国产精品国自产在线 | 在线视频 91| 久久久久国产精品厨房 | 日本韩国在线不卡 | 蜜臀av在线一区二区三区 | 中文字幕免费在线 | 亚洲成av人片 | a√资源在线| 婷婷婷国产在线视频 | 久久久久一区二区三区 | 亚洲日本色 | 在线看免费 | 亚洲精品福利在线 | 五月婷综合 | 日韩高清av在线 | 精品国产乱码久久久久久1区2匹 | 国产精品久久久久久久久久久久午夜 | av直接看| 国产一级精品在线观看 | 久射网| 成人免费观看完整版电影 | 亚洲精品欧美视频 | 九九交易行官网 | av免费在线观 | 国产亚洲在线视频 | 久日视频| 久草色在线观看 | 99理论片 | www99精品| 国产午夜一区 | 久久黄色影院 | 在线黄网站 | 丰满少妇一级 | 亚洲精品中文在线资源 | 99久在线精品99re8热视频 | 91成人网在线观看 | 91精品影视 | 亚洲国产午夜 | 国产群p| 二区三区在线观看 | 99re国产视频 | 国产精品一区二区三区四 | 久久久96 | 免费观看黄色12片一级视频 | 日韩,精品电影 | 欧美日韩性视频 | 91av在线免费看 | 日韩一区二区三区高清免费看看 | 国产精品视频免费 | 特级毛片爽www免费版 | 九九久久国产精品 | 婷婷五情天综123 | 色噜噜噜噜 | japanesefreesexvideo高潮 | 欧美在线99 | 91在线观看高清 | 日韩欧美在线中文字幕 | 美女黄色网在线播放 | 天天爱天天操天天射 | 亚洲欧美日韩在线看 | 亚洲电影院 | 91亚洲在线观看 | 日日操天天操夜夜操 | 亚洲一区二区视频在线 | 综合久久久久久久久 | www麻豆视频| 在线免费观看羞羞视频 | 国产一级视频在线免费观看 | 狠狠躁夜夜av | 国产成人不卡 | 久久久久久久久久久影视 | 九九热av | 在线视频免费观看 | 亚洲小视频在线 | 狠狠躁夜夜躁人人爽超碰91 | 亚洲精品456在线播放 | 五月天伊人网 | 日韩免费一区二区在线观看 | 国产精品一区二区三区在线播放 | 国产精品一级在线 | 激情久久网 | 日韩视频一区二区在线 | 亚洲综合色视频在线观看 | 久久婷亚洲五月一区天天躁 | 色视频在线免费 | 综合黄色网| 亚洲最大在线视频 | 在线视频 一区二区 | 亚洲 欧美 另类人妖 | 精品国产乱码久久久久久久 | 国产一及片 | 国产精品久久久久久久久免费 | 99久久精品国产毛片 | 久久精品导航 | 亚洲在线成人精品 | 日韩久久久久久久久久 | 日韩av视屏在线观看 | 99热只有精品在线观看 | 国产精品国产亚洲精品看不卡 | 久久久精品网站 | 天天操综合 | 激情综合色综合久久综合 | 三级性生活视频 | 国产亚洲视频在线 | 日韩高清一区 | 亚洲国产精品久久 | 亚洲狠狠婷婷 | 国产精品视频地址 | 免费看黄色91 | 国产欧美日韩精品一区二区免费 | 中国老女人日b | 日韩系列在线 | 91精品视频免费在线观看 | 天天天综合 | 婷婷精品国产一区二区三区日韩 | 日本性生活一级片 | 久久这里只有精品视频首页 | 狠狠狠综合| 日韩黄色在线电影 | 九九视频免费在线观看 | 亚洲一区二区三区毛片 | 欧美91视频| 狠狠干狠狠操 | 99视频偷窥在线精品国自产拍 | 欧美国产在线看 | 欧美日韩亚洲在线观看 | 国产特级毛片aaaaaa毛片 | 99在线视频免费观看 | 五月综合激情网 | 国产精品欧美久久久久三级 | 人人爽人人爽人人爽学生一级 | 国产精品美女免费看 | 国产成人精品综合 | 日韩在线播放欧美字幕 | 久久免费看视频 | 久久国产电影院 | 久草.com| 天天操天天摸天天射 | 在线小视频| 欧美精品一区二区三区一线天视频 | 国产精品去看片 | 国产麻豆视频免费观看 | 福利视频一区二区 | 亚洲美女在线国产 | 亚洲六月丁香色婷婷综合久久 | 国产九色在线播放九色 | 精品黄色片 | 亚洲欧美国产精品久久久久 | 国产码电影 | 91视频在线看 | 天天曰天天| 欧美久久久一区二区三区 | 99久高清在线观看视频99精品热在线观看视频 | 国产精品久久久久久超碰 | 欧美日韩三级在线观看 | 国产手机在线播放 | 色a网| 欧美日本日韩aⅴ在线视频 插插插色综合 | 亚州天堂 | 精品毛片久久久久久 | 国产精品国内免费一区二区三区 | 国产高清免费观看 | 一区二区三区 亚洲 | 激情久久小说 | 欧美激情精品久久久久 | 久久这里只有精品1 | 国产小视频网站 | 婷婷丁香花五月天 | 日日夜夜天天 | 亚洲少妇影院 | 国产精品mv在线观看 | 插婷婷| 丁香久久综合 | 91香蕉视频黄 | 国产精品免费av | 午夜色性片 | 亚洲jizzjizz日本少妇 | 二区三区中文字幕 | 成人亚洲免费 | 在线观看第一页 | 国产香蕉97碰碰久久人人 | 在线欧美最极品的av | 天天操天天爽天天干 | 欧美国产日韩在线视频 | 久久一区91| 亚洲国产精品免费 | www蜜桃视频| www.天天干.com| 久久精品男人的天堂 | 中文在线天堂资源 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久超碰97| 在线黄av | 久久国产香蕉视频 | 日韩黄色中文字幕 | 91看片在线观看 | 日本久久久久久久久久 | 日韩一区二区三区在线看 | 欧美一级电影 | 中文字幕在线久一本久 | 亚洲狠狠干 | 久久99精品久久久久久清纯直播 | 日韩欧美在线综合网 | 久久av免费观看 | 六月丁香激情综合 | 日韩精品一区二区三区在线播放 | 五月婷在线视频 | 亚洲国产视频网站 | 高潮久久久久久久久 | 日韩欧美在线影院 | 91网站在线视频 | 亚洲涩综合| 免费精品视频在线 | 国产精品video爽爽爽爽 | 中文字幕精品一区二区三区电影 | 二区三区精品 | 韩日电影在线免费看 | 久久久国产精品久久久 | 日本一区二区三区免费看 | 98福利在线 | 手机看片中文字幕 | 日韩一区二区三区在线观看 | 亚洲毛片在线观看. | 欧美激情亚洲综合 | 久久久久亚洲国产 | 成人国产电影在线观看 | 国产精品video | 夜夜夜夜猛噜噜噜噜噜初音未来 | av日韩不卡 | 精品国产电影 | 91九色网址 | 91视频 - 88av | 欧美精品在线一区二区 | 国产精品自产拍在线观看 | 一区二区中文字幕在线 | 美女视频久久久 | 一级黄色av| 久久午夜国产精品 | 欧美做受xxx | 丁香激情综合久久伊人久久 | 99久久999久久久精玫瑰 | 日韩免费在线看 | 就要干b | 亚洲一区欧美激情 | a在线一区| 日本中文字幕在线播放 | 高清国产在线一区 | 婷婷综合网 | 国产一区国产精品 | 亚洲视频在线观看免费 | 黄色小网站免费看 | 国产精品99久久久久的智能播放 | 香蕉视频在线观看免费 | 中国一区二区视频 | 成人av一区二区在线观看 | 亚洲另类视频 | 国产福利一区二区三区视频 | 久久这里只有精品视频首页 | 亚洲人片在线观看 | 欧美日韩精品在线一区二区 | 91久久精品日日躁夜夜躁国产 | 91精品啪在线观看国产 | 亚洲黄色在线播放 | 在线日韩中文字幕 | 成人影片在线播放 | 一级成人免费视频 | 91激情视频在线播放 | 伊色综合久久之综合久久 | 国产日韩精品在线观看 | 激情婷婷丁香 | 国产精品1000 | 五月婷婷操 | 免费av观看 | 五月婷婷丁香激情 | 国产自产在线视频 | .国产精品成人自产拍在线观看6 | 性色av免费在线观看 | 国产精品porn| 中文字幕在线电影 | 中文av日韩 | 天天操天天操天天操天天操天天操天天操 | 国产成人精品午夜在线播放 | 天天操人人要 | 婷婷六月中文字幕 | 亚洲视频456 | 国产经典 欧美精品 | 一区二区三区在线视频观看58 | 96精品高清视频在线观看软件特色 | 天天射天天射天天 | 一区二区三区福利 | 99久热在线精品视频观看 | 亚洲欧美日韩不卡 | 五月天亚洲激情 | 欧美午夜性生活 | 超碰97在线资源站 | 国产片免费在线观看视频 | 这里只有精彩视频 | 国产一在线精品一区在线观看 | 国产午夜小视频 | 久久观看| 天天搞夜夜骑 | 操操操com | 色操插| 九九久久视频 | 色网站中文字幕 | 婷婷丁香导航 | 日韩超碰| 综合网天天射 | 免费国产在线精品 | 国产精品成人免费一区久久羞羞 | 天天插狠狠插 | v片在线播放 | 最新精品视频在线 | 国产又粗又猛又爽又黄的视频免费 | 一级电影免费在线观看 | 国产香蕉视频在线播放 | 在线免费av电影 | 国产精品一区二区久久国产 | 欧美激情综合色综合啪啪五月 | 一区二区三区在线看 | 国产97在线视频 | 久久精品一区二区三区中文字幕 | 中文字幕在线观看一区二区 | 午夜影院一级片 | 久久黄色美女 | 免费在线观看成人小视频 | 精品国偷自产国产一区 | 日韩精品观看 | 免费观看www小视频的软件 | 成人午夜电影在线观看 | 成人性生爱a∨ | 国产又粗又猛又爽又黄的视频先 | 国产在线毛片 | 亚洲综合激情小说 | 日本不卡一区二区三区在线观看 | 欧美日韩另类在线 | 在线观看视频福利 | 久久电影色 | 国产精品九九视频 | 精品福利在线视频 | 97视频久久久 | 99综合视频 | 特级西西444www大精品视频免费看 | 女女av在线| 狠狠地日| 91精品在线免费观看 | 久久精品网站免费观看 | 亚洲国产精品推荐 | 激情久久伊人 | 少妇啪啪av入口 | 操操操夜夜操 | 国内精品久久久久影院一蜜桃 | 成年人免费在线观看网站 | 久久不射电影院 | 国产精品18久久久久vr手机版特色 | 黄色一级在线视频 | 一区二区三区免费看 | 亚洲aaa毛片 | 欧美一级特黄aaaaaa大片在线观看 | 国产男女无遮挡猛进猛出在线观看 | 国产一区二区午夜 | 99热国内精品 | 免费日韩 精品中文字幕视频在线 | 婷婷九月丁香 | 日韩a免费| 日日日视频 | 中文字幕第| 欧美ⅹxxxxxx | 亚洲天堂毛片 | 久久久久国产精品www | 天天在线免费视频 | 在线看污网站 | 国产精品自产拍在线观看 | 久久综合狠狠综合久久激情 | 超碰97国产在线 | 西西44人体做爰大胆视频 | 国产精品手机视频 | 国产a级片免费观看 | 天天射射天天 | 中文av在线天堂 | 欧美精品久久久久久久久久久 | 成人在线中文字幕 | 国产麻豆精品久久一二三 | 97av视频在线观看 | 欧美日韩一级视频 | 99久久精品免费视频 | 91传媒在线看 | 国产精品高清一区二区三区 | 99精品视频网站 | 成人黄色在线看 | 欧美成人精品欧美一级乱黄 | 久久综合久久综合久久综合 | 国产精品久久久久国产精品日日 | 日韩黄色免费在线观看 | 亚洲成人资源 | 成人午夜剧场在线观看 | 日本久久久久久久久 | 国产精品对白一区二区三区 | 午夜精品电影一区二区在线 | 国产麻豆精品久久一二三 | 天天操天天射天天爽 | 91在线视频播放 | 欧美日韩午夜爽爽 | 国产一区免费在线观看 | 日本精品一区二区三区在线播放视频 | 午夜精品视频在线 | 中文日韩在线视频 | 久久久久久美女 | 97视频免费在线观看 | 不卡的av片| 亚洲精品国产精品国自产观看浪潮 | 中文亚洲欧美日韩 | 婷婷国产v亚洲v欧美久久 | 久久韩国免费视频 | 亚洲精品视频大全 | 亚洲精品在线一区二区三区 | 日韩v在线91成人自拍 | 精品视频在线免费 | 日韩网站一区二区 | 久草热久草视频 | 果冻av在线 | av在线观| 亚洲欧洲国产精品 | 免费国产在线精品 | 精品美女在线观看 | 99精品视频免费观看 | 国产精品免费人成网站 | 国产精品一区二区三区四 | 99国产精品久久久久老师 | 国产成人精品女人久久久 | 91夜夜夜 | 97理论电影 | 2023国产精品自产拍在线观看 | 狠狠色丁香婷婷综合视频 | 99精品偷拍视频一区二区三区 | 视频二区在线 | 国产精品亚洲人在线观看 | 色夜视频 | 久久爱资源网 | 国产黄色美女 | 友田真希x88av | 99精品欧美一区二区蜜桃免费 | 国产精品久久久久久久久久久久 | 国产免费中文字幕 | 免费看的黄色 | 久草青青在线观看 | 黄色成人影视 | 激情视频在线观看网址 | 欧美性生活一级片 | 免费看三片 | 欧美日韩一二三四区 | 亚洲激情网站免费观看 | 99热精品久久 | av亚洲产国偷v产偷v自拍小说 | 毛片1000部免费看 | 天天干,夜夜爽 | 国产黄色大片 | 中文字幕免费在线 | 98久久 | 日韩av片无码一区二区不卡电影 | 天天插视频 | www九九热 | 日日碰狠狠躁久久躁综合网 | 亚洲一级二级 | 国产精品9999| 五月天电影免费在线观看一区 | 97精品国产一二三产区 | 久久久国产一区二区三区 | 国产成人精品亚洲精品 | 国产专区在线视频 | 人人dvd| 国产一区视频在线播放 | 99视频在线免费观看 | 亚洲男男gⅴgay双龙 | 国产精品久久久久久久久久久杏吧 | 免费观看国产精品 | 久久刺激视频 | 99久久精品国产一区二区三区 | 久热香蕉视频 | 久久免费在线视频 | 国产 欧美 日产久久 | 在线国产精品一区 | 亚洲狠狠操| 亚洲精品国偷拍自产在线观看 | 久久人人爽人人爽人人片av软件 | 久久精品一二三区 | 93久久精品日日躁夜夜躁欧美 | 99视频偷窥在线精品国自产拍 | 青青河边草观看完整版高清 | 四虎影视国产精品免费久久 | 久久线视频 | 亚洲激情 在线 | 国产91免费在线 | 国内精品久久久久影院日本资源 | 99精品区| 成人黄在线观看 | 日韩最新av在线 | 国精产品999国精产品视频 | 成人综合免费 | 日韩黄色大片在线观看 | 色婷婷丁香| 免费黄色av电影 | 91福利小视频 | 久久久久久久久久久久亚洲 | 欧美老人xxxx18 | 成人羞羞视频在线观看免费 | 国产成人久久精品 | 久草视频免费在线观看 | 精品在线不卡 | 成人在线播放免费观看 | 亚洲国产日韩一区 | av在线等 | 激情丁香综合 | 97人人精品 | 成人在线视 | 久久不射电影院 |